我在ScrollView中发现了UILabel的奇怪行为。我将动态文本分配给UILabel并使用sizeToFit,我可以记录新的大小,在分配文本后似乎可以正确地更改,但我看不到更改后的大小在模拟器和真实设备中都有反映。这是分配文本之前和之后的日志
--txt Frame {{15, 325}, {291, 36}}
--txt Frame1 {{15, 296}, {291, 446.5}}正如你所看到的,大小(高度)发生了变化,尽管我没有看到设备和模拟器上的变化。请帮帮忙。
发布于 2016-05-31 08:45:30
尝试将此代码添加到sizeToFit()之后
self.view.setNeedsLayout()
self.view.layoutIfNeeded()override func viewWillLayoutSubviews() { self.myLabel.layoutIfNeeded() }
发布于 2016-05-31 12:43:09
是否在使用sizeToFit方法之前设置了该标签的numberOfLines属性。
这也可能是导致问题的原因。
可能是标签框被更改了,但标签的numberOfLines属性设置为1,因此它只显示1行。
在使用sizeToFit方法之前,尝试设置行数属性,如
label.numberOfLines = 0;
[label sizeToFit];这将为标签中任意数量的行设置所有文本。希望能对你有所帮助。
发布于 2016-06-09 17:36:56
在尝试了不同的方法后,我自己手动扩展了IB中contentView的高度。这不是最优雅的解决方案,但目前它是可行的:
https://stackoverflow.com/questions/37534130
复制相似问题