ios – 动态更改UILabel宽度不适用于autolayout

我有一些代码
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的大小不起作用.

也许,有人可以建议我,我应该改变什么?

谢谢.

解决方法

使用AutoLayout时,不应更新框架属性,而应修改视图上的约束.

另一方面,您也可以让AutoLayout为您工作.确保标签的numberOfLines属性设置为0,高度约束的类型为大于或等于(> =).这样,在标签上设置新文本后,布局将自动更新.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...