在我的视图控制器的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开始,当使用基于约束的布局时,基本实现应用基于约束的布局,否则它不执行任何操作。