ios - 以编程方式更改高度约束

标签 ios height constraints autolayout

我想以编程方式更改 UITextView 的高度约束,因此我将约束设置为 Controller 中的导出,如下所示:

@property (strong, nonatomic) IBOutlet NSLayoutConstraint *descriptionHeightConstraint;

要更改它,我执行以下操作:

self.descriptionHeightConstraint.constant = self.description.contentSize.height;

如果我在 viewDidAppear 中这样做,这是可行的,但问题是我可以看到显示 View 后高度如何变化,这对用户来说不是很友好,所以我尝试在 中这样做>viewWillAppear 但没有在那里工作,高度没有改变。更改约束后调用 setNeedsUpdateConstraints 也不起作用。

为什么在 viewDidAppear 而不是 viewWillAppear 中工作?任何解决方法?

提前致谢!

最佳答案

尝试在 viewDidLayoutSubviews 中设置常量。

请注意,使用 TextView 的 contentSize 属性设置 TextView 的高度在 iOS 7 中不起作用。参见 https://stackoverflow.com/a/18837714/1239263

关于ios - 以编程方式更改高度约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930000/

相关文章:

generics - 如何为对特征本身的关联类型的引用编写特征绑定(bind)?

c# - 有约束的计划

ios - 有没有办法根据语言更改应用程序内的布局方向? (如果用户选择阿拉伯语,则为 RTL;如果用户选择英语,则为 LTR)

ios - 在 Swift 中格式化电话号码

ios - 使用 UIView.Animate 将后退按钮移至原始位置

javascript - 如何使 body 的最小高度等于 screen.height

ios - 如何判断 CBCentralManager 是否仍在处理 scanForPeripheralsWithServices?

html - DOMPDF 如何使 PDF 高度自动

html - 如何使浏览器窗口的高度为100%

ios - 如何将 AutoLayout 约束的常量设置为父 View 的百分比?