我有一些代码:
CGRect currentFrame = textLabel.frame;
CGSize max = CGSizeMake(textLabel.frame.size.width, 3000);
CGSize expected = [[textLabel text] sizeWithFont:textLabel.font constrainedToSize:max lineBreakMode:textLabel.lineBreakMode];
currentFrame.size.height = expected.height;
textLabel.frame = currentFrame;
expected.height = expected.height + 70;
[scrollView setContentSize:expected];
textLabel放在UIScrollView中以显示多行文本信息。
在旧版应用程序中,没有4英寸屏幕支持,一切都很完美。 但现在,不幸的是,调整UILabel的大小不起作用。
也许,有人可以建议我,我应该改变什么?
感谢。
答案 0 :(得分:27)
使用AutoLayout时,您不应更新框架属性,而是修改视图上的约束。
另一方面,您也可以让AutoLayout为您工作。确保标签的numberOfLines
属性设置为0,高度约束的类型为Greater Than or Equal
(> =)。这样,在标签上设置新文本后,布局将自动更新。