swift 语法, 如何 动态计算 UILabel 的高度 ?

2015-01-09 11:12:37 +08:00
 tsinghan

我还以为直接 sizeToFit()就能直接计算了呢。。。

3918 次点击
所在节点    iDev
6 条回复
dcty
2015-01-09 13:54:55 +08:00
行数0,宽度设置一下,sizeToFit应该还能继续用的。
但是,但是,都swift了,为啥不直接al
l12ab
2015-01-09 18:47:37 +08:00
```
var textContent = UILabel()
textContent.text = "1234569abcdefghjklmn"
textContent.font = UIFont.systemFontOfSize(16)
textContent.numberOfLines = 0
textContent.frame = CGRect(x:15, y:10, width:self.view.bounds.size.width-30, height:100)
textContent.sizeToFit()
```
tsinghan
2015-01-09 22:10:45 +08:00
@dcty al 是什么?
tsinghan
2015-01-09 22:10:54 +08:00
@l12ab 我试一下 谢谢
kofwang
2015-01-09 23:03:49 +08:00
auto layout
krafttuc
2015-01-12 16:18:36 +08:00
值得注意的是 `sizeToFit()` 这个方法会直接更改 label 的尺寸。楼主如果只想知道数值,可以用 sizeThatFits,再做定夺。此外,`NSString` 的某个 category 是有类似 sizeXXX 之类的方法的,把字体等参数传进去可以拿到一个估算的尺寸。

我猜楼主是把 UILabel 放到 UITableViewCell 里后想动态更改 cell 高度?那种场景下 Auto-Layout 或许不会太方便。其他时候 Auto-Layout 可以省去很多力气。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/160551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX