【发布时间】:2013-04-08 05:55:24
【问题描述】:
我通过情节提要在我的滚动视图底部添加了一个具有固定高度和初始高度的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。 结果很奇怪,文本在标签中垂直对齐放置,像这样:
(我无法显示标签的整个高度,因为滚动视图会将其截断)
如果我在sizeToFit 之后NSLog UILabel 的高度,我正确地看到标签的高度是 105 像素,但标签肯定不会以该高度显示。
我非常感谢一些帮助,因为这个问题让我忙了一个星期。
更新:应要求提供一些附加信息。
调整UILabel 大小的代码在通过 RESTkit 从服务器接收到一些 JSON 后调用。 viewDidLoad 执行通过dispatch_async() 加载数据的函数。
标签的属性有:
换行:自动换行
自动收缩:最小字体大小 (10)
收紧字母间距已关闭,Autoresize subviews 已打开。
保存UILabel 的容器是UIScrollView。我在调用sizeToFit之后自动调整滚动视图的高度。
scrollview的视图模式设置为Scale to Fill并且Autoresize subviews开启。
【问题讨论】:
-
在哪里您将调用
sizeToFit的代码放置在哪里,以及为标签和保存标签的容器(滚动视图、看起来像)? -
@Nate 我已将您请求的信息添加到我的问题底部。如果您需要更多信息,请告诉我。
-
第二张截图是在
sizeToFit调用之后截的吗? -
@mja 是的,当情节提要中的高度设置为 250 时,屏幕截图是在 sizeToFit 之后拍摄的。