以编程方式更改高度约束

时间:2014-01-05 04:18:11

标签: ios height constraints autolayout

我想以编程方式更改UITextView的高度约束,因此我将约束设置为我的控制器中的插座,如下所示:

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

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

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:27)

请尝试在viewDidLayoutSubviews中设置常量。

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