ScrollView中的UILabel sizeToFit

时间:2016-05-30 22:02:56

标签: ios objective-c iphone uiscrollview uilabel

我在ScrollView中得到了UILabel的奇怪行为。我正在为UILabel分配动态文本并使用sizeToFit,我可以记录分配文本后似乎正确更改的新大小,但我看不到模拟器和真实设备中反映的更改大小。这是分配前和分配文本后的日志

--txt Frame {{15, 325}, {291, 36}}
--txt Frame1 {{15, 296}, {291, 446.5}}

正如您所看到的,虽然我没有看到设备和模拟器上的更改,但是尺寸(高度)会发生变化。请帮忙。

3 个答案:

答案 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的高度。它不是最优雅的解决方案,但现在可以使用:(