Ios 自动布局无法正确调整大小

Ios 自动布局无法正确调整大小,ios,Ios,这是我的视图的层次结构 超级视图 -包装视图 -儿童视图 -儿童视图 使用autolayout时,我希望所有子视图的宽度都与superview相同。但只是包装视图是平等的 例如: -纵向:superview=wrapperview=768,但ChildView为1024 -在横向:superview=wrapperview=1024,但childview为768 有人知道那里发生了什么吗?如果子视图被固定在超级视图的边缘,并且它的内容比超级视图大(在您的情况下可能是这样),那么如果您使用的是视觉

这是我的视图的层次结构 超级视图 -包装视图 -儿童视图 -儿童视图

使用autolayout时,我希望所有子视图的宽度都与superview相同。但只是包装视图是平等的

例如: -纵向:superview=wrapperview=768,但ChildView为1024 -在横向:superview=wrapperview=1024,但childview为768


有人知道那里发生了什么吗?

如果子视图被固定在超级视图的边缘,并且它的内容比超级视图大(在您的情况下可能是这样),那么如果您使用的是视觉格式语言,它会将视图推出

例如,假设您的子视图是UIImageView,并且具有尺寸为1024 x 1024的图像

如果您的自动布局类似于:

[self.wrapperView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]|" options:0 metrics:nil views:views]];
然后,您的imageView将推出wrapperView

您需要做的是使用这种约束方法,它更为明确:

[self.wrapperView addConstraint:[NSLayoutConstraint constraintWithItem:self.childView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.wrapperView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0.0]];

这会告诉autolayout,子视图的宽度应等于包装视图的宽度,并且决不能大于NSRelationEqual标志指定的宽度。

否,没有比superview更大的值。