Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 约束更新后,UIView';什么是边界变化?_Ios_Uiview_Uiviewcontroller_Autolayout_Nslayoutconstraint - Fatal编程技术网

Ios 约束更新后,UIView';什么是边界变化?

Ios 约束更新后,UIView';什么是边界变化?,ios,uiview,uiviewcontroller,autolayout,nslayoutconstraint,Ios,Uiview,Uiviewcontroller,Autolayout,Nslayoutconstraint,在我的视图控制器的viewDidLoad中,我正在调整UIImageView的约束以反映其图像的纵横比。完成后,我想知道图像视图的更新边界。界面中的边界确实会更新,但当调用viewWillLayoutSubviews和viewdillayoutsubviews时(每个视图只调用一次),边界仍然是我更改纵横比之前的原始边界。我应该什么时候检查边界并进行相关更改?尝试覆盖方法-updateViewConstraints - (void)updateViewConstraints { [sup

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

尝试覆盖方法-updateViewConstraints

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

更新
视图didload
中的约束后,使用以下任一约束更新它们

 [yourImageViewOL setNeedsDisplay];
 [yourImageViewOL layoutIfNeeded];   //Allows you to perform layout before the drawing cycle happens. -layoutIfNeeded forces layout early
然后,您可以在
-(void)布局子视图中查找更新的边界方法,因为LayoutIfNeed自动调用此方法

从iOS 6.0开始,当使用基于约束的布局时,基本实现将应用基于约束的布局,否则它将什么也不做


图像视图是视图控制器的
视图的直接子视图吗?还是嵌套得更深?