UILabel
我已经通过情节提要在我的滚动视图底部添加了一个固定的初始高度。通过UIViewContoller
我给了UILabel
一个白色的背景和圆角,并动态地将文本加载到标签中。
我想要做的是根据文本调整标签高度。我已经阅读了大量关于如何执行此操作的 stackoverflow 帖子,并尝试了所有这些帖子,但似乎没有一个有效。
为了解决这个问题,我使用以下代码:
descriptionLabel.numberOfLines = 0;
descriptionLabel.text = @"Nam nisi arcu, sodales vitae scelerisque sit amet. Nam nisi arcu, sodales vitae scelerisque sit amet. Nam nisi arcu, sodales vitae scelerisque sit amet.";
[descriptionLabel sizeToFit];
这样做的结果是标签将像这样剪切文本:
我想到的是 sizeToFit 使用 UILabel 的初始高度来确定最大高度,所以在情节提要中我将其更改为 250。结果很奇怪,文本在标签中垂直对齐,如下所示:
(我无法显示标签的整个高度,因为 scrollView 将其切断)
如果我是afterNSLog
的高度,我可以正确地看到标签的高度是 105 像素,但标签绝对没有以该高度显示。UILabel
sizeToFit
我非常感谢一些帮助,因为这个问题现在让我忙了一个星期。
更新:根据要求提供一些附加信息。
UILabel
在通过 RESTkit 从服务器接收到一些 JSON 后调用调整大小的代码。viewDidLoad
执行通过 加载数据的函数dispatch_async()
。
标签的属性是:
换行:自动换
行 Autoshrink:最小字体大小 (10)
关闭字母间距并打开Autoresize 子视图。
容纳 的容器UILabel
是UIScrollView
. 我在调用后自动调整滚动视图的高度sizeToFit
。
滚动视图的视图模式设置为Scale to Fill并打开Autoresize subviews。