我在ScrollView中得到了UILabel的奇怪行为。我正在为UILabel分配动态文本并使用sizeToFit,我可以记录分配文本后似乎正确更改的新大小,但我看不到模拟器和真实设备中反映的更改大小。这是分配前和分配文本后的日志
--txt Frame {{15, 325}, {291, 36}}
--txt Frame1 {{15, 296}, {291, 446.5}}
正如您所看到的,虽然我没有看到设备和模拟器上的更改,但是尺寸(高度)会发生变化。请帮忙。
答案 0 :(得分:0)
尝试在sizeToFit()
之后添加它 self.view.setNeedsLayout()
self.view.layoutIfNeeded()
override func viewWillLayoutSubviews() {
self.myLabel.layoutIfNeeded()
}
答案 1 :(得分:0)
您是否为该标签设置了numberOfLines
属性在使用sizeToFit
方法之前。
可能也会导致问题。
可能是标签框架已更改但标签的numberOfLines
属性设置为1,因此它只显示1行。
尝试在使用sizeToFit
方法之前设置行数属性,例如
label.numberOfLines = 0;
[label sizeToFit];
这将设置标签中任意数量的行的所有文本。 希望它会帮助你。
答案 2 :(得分:0)
在尝试不同的方法后,我最终自己手动扩展了IB中contentView的高度。它不是最优雅的解决方案,但现在可以使用:(