我想以编程方式更改UITextView的高度约束,因此我将约束设置为我的控制器中的插座,如下所示:
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *descriptionHeightConstraint;
要更改它,我会执行以下操作:
self.descriptionHeightConstraint.constant = self.description.contentSize.height;
如果我在 viewDidAppear 中这样做有效,但问题是我可以看到在显示的视图后高度如何变化,这对用户不是很友好所以我尝试在 viewWillAppear 但在那里没有工作,高度不会改变。更改约束后调用 setNeedsUpdateConstraints 也不起作用。
为什么在viewDidAppear中工作而不在viewWillAppear中工作?任何解决方法?
提前致谢!
答案 0 :(得分:27)
请尝试在viewDidLayoutSubviews
中设置常量。
请注意,使用文本视图的contentSize
属性设置文本视图的高度在iOS 7中不起作用。请参阅https://stackoverflow.com/a/18837714/1239263