这是我视图的层次结构
上海华
-wrapperview
- 儿童观察
--childview
当我使用autolayout时,我想要的是所有子视图的宽度都等于superview。但只是包装视图相等
示例:
- 在肖像中:superview = wrapperview = 768但是子视图是1024
- 在横向:superview = wrapperview = 1024但是childview是768
有人知道那里发生了什么吗?
答案 0 :(得分:0)
如果将子视图固定在超级视图的边缘,并且它的内容大于超级视图(在您的情况下很可能),那么如果您和&#39> #39;重新使用可视化格式化语言。
例如,假设您的childView是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标志指定)。