约束更新后,UIView的边界何时发生变化?

问题描述 投票:0回答:2

在我的视图控制器的viewDidLoad中,我正在调整UIImageView的约束以反映其图像的纵横比。完成后,我想知道图像视图的更新边界。边界确实在UI中更新,但是当调用viewWillLayoutSubviewsviewDidLayoutSubviews时(每个只调用一次),边界仍然是我更改宽高比之前的原始边界。我应该何时检查边界并进行相关更改?

ios uiview uiviewcontroller autolayout nslayoutconstraint
2个回答
0
投票

尝试覆盖方法-updateViewConstraints

- (void)updateViewConstraints {
    [super updateViewConstraints];
     /// your code here
}

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.