我有一个带有两个垂直约束的视图,一个1:1的宽高比costraint和一个中心对齐,因此它会根据屏幕的高度自动调整大小。 现在,这个视图充满了UIImageViews形式的一堆较小的子视图。我希望这些图像视图能够自动调整大小与超视图成比例,但无法弄清楚如何做到这一点。我在superview中尝试了无数版本的约束,但所有这些约束都以混乱结束。 有什么想法吗?
答案 0 :(得分:1)
以下是1 UIImageView:
的示例首先在superview中设置imageView的位置(为简单起见,我选择了左上角):
NSDictionary* views = NSDictionaryOfVariableBindings(orangeView);
[superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imageView]"
options:0
metrics:nil
views:views]];
[superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imageView]"
options:0
metrics:nil
views:views]];
之后将imageView的宽度和高度设置为相对于其超级视图:
[superview addConstraint:[NSLayoutConstraint constraintWithItem:imageView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:redView
attribute:NSLayoutAttributeHeight
multiplier:0.4//between 0.0 and 1.0
constant:0]];
[superview addConstraint:[NSLayoutConstraint constraintWithItem:imageView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:redView
attribute:NSLayoutAttributeWidth
multiplier:0.4//between 0.0 and 1.0
constant:0]];