以编程方式更改高度限制

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

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

要改变它我做到以下几点:

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

这个作品,如果我在viewDidAppear做,但这样做的问题是,我可以看到高度变化后,显示视图是不是非常用户友好,所以我试图做viewWillAppear但没有在那里工作,高度doesn'改变。 更改约束后调用setNeedsUpdateConstraints也不起作用。

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

提前致谢!

尝试在viewDidLayoutSubviews设置常量。

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