约束更新后,UIView的边界何时发生变化?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约束更新后,UIView的边界何时发生变化?相关的知识,希望对你有一定的参考价值。
在我的视图控制器的viewDidLoad
中,我正在调整UIImageView
的约束以反映其图像的纵横比。完成后,我想知道图像视图的更新边界。边界确实在UI中更新,但是当调用viewWillLayoutSubviews
和viewDidLayoutSubviews
时(每个只调用一次),边界仍然是我更改宽高比之前的原始边界。我应该何时检查边界并进行相关更改?
答案
尝试覆盖方法-updateViewConstraints
- (void)updateViewConstraints {
[super updateViewConstraints];
/// your code here
}
另一答案
更新viewDidLoad
中的约束后,使用下面的任何一个更新它们
[yourImageViewOL setNeedsDisplay];
[yourImageViewOL layoutIfNeeded]; //Allows you to perform layout before the drawing cycle happens. -layoutIfNeeded forces layout early
然后你可以在- (void)layoutSubviews;
方法中查找更新的边界,因为此方法会被layoutIfNeeded自动调用。
从ios 6.0开始,当使用基于约束的布局时,基本实现应用基于约束的布局,否则它不执行任何操作。
以上是关于约束更新后,UIView的边界何时发生变化?的主要内容,如果未能解决你的问题,请参考以下文章
如何对 UIView 上的自动布局约束引起的大小变化做出反应?