ScrollView中的UILabel sizeToFit
Posted
技术标签:
【中文标题】ScrollView中的UILabel sizeToFit【英文标题】:UILabel sizeToFit in ScrollView 【发布时间】:2016-05-30 22:02:56 【问题描述】:我在 ScrollView 中遇到了 UILabel 的奇怪行为。我正在为 UILabel 分配动态文本并使用 sizeToFit,我可以记录分配文本后似乎正确更改的新大小,但我无法在模拟器和真实设备中看到更改后的大小。这是分配前和分配文本后的日志
--txt Frame 15, 325, 291, 36
--txt Frame1 15, 296, 291, 446.5
如您所见,虽然我在设备和模拟器上看不到变化,但尺寸(高度)发生了变化。请帮忙。
【问题讨论】:
【参考方案1】:尝试在 sizeToFit() 之后添加这个
self.view.setNeedsLayout()
self.view.layoutIfNeeded()
override func viewWillLayoutSubviews()
self.myLabel.layoutIfNeeded()
【讨论】:
【参考方案2】:在使用sizeToFit
方法之前,您是否为该标签设置了numberOfLines
属性。
可能也是这个问题的原因。
可能是标签框架发生了变化,但标签的numberOfLines
属性设置为 1,因此它只显示 1 行。
尝试在使用sizeToFit
方法之前设置行数属性,比如
label.numberOfLines = 0;
[label sizeToFit];
这将为标签中任意数量的行设置所有文本。 希望对您有所帮助。
【讨论】:
我已经这样做了,但仍然无法正常工作。谢谢你的回答【参考方案3】:在尝试了不同的方法后,我最终自己在 IB 中手动扩展了 contentView 的高度。它不是最优雅的解决方案,但它现在可以工作:(
【讨论】:
以上是关于ScrollView中的UILabel sizeToFit的主要内容,如果未能解决你的问题,请参考以下文章
UILabel 使用 ScrollView 后视图底部不需要的空间