在约束更新后,UIView的bounds何时更改?

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

еӣҫзүҮи§ҶеӣҫжҳҜи§ҶеӣҫжҺ§еҲ¶еҷЁзҡ„viewзҡ„зӣҙжҺҘеӯҗи§Ҷеӣҫеҗ—пјҹиҝҳжҳҜеөҢеҘ—еҫ—жӣҙж·ұпјҹ - undefined
2个回答

2

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


0
尝试重写方法-updateViewConstraints。
- (void)updateViewConstraints {
    [super updateViewConstraints];
     /// your code here
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接