2014-01-05 49 views
30

我想换一个UITextView的高度约束编程,所以我设定的约束在我的控制器这样一个出口:变化高度约束编程

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

要改变它,我做了以下内容:

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

这工作,如果我这样做在viewDidAppear,但这样做的问题是,我可以看到的高度如何改变后的视图中显示这是不是很方便,所以我试图做它viewWillAppear但没有在那里工作,身高并没有改变。在更改约束后调用setNeedsUpdateConstraints也不起作用。

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

在此先感谢!

+0

问题举行的为我解答。谢谢@mxch。 – SteveSTL

回答

27

尝试在viewDidLayoutSubviews中设置常量。

注意,使用文本视图的contentSize属性设置文本视图的高度不会在iOS的7看到工作https://stackoverflow.com/a/18837714/1239263

+1

刚刚尝试过,在iOS6模拟器工作正常,视图显示和高度是正确的,但在iOS7中,我可以看到显示视图后高度如何变化。也许我做错了什么? – mxch

+2

@maxichiesa我更新了我的答案。 – bilobatum

+0

非常感谢!它与此一起工作,现在我检查它是否是iOS7并按照您发布的答案解释。谢谢! – mxch