在界面构建器中,我们可以固定高度,引脚宽度,使两个视图宽度相等,但是如何设置约束以便在调整视图大小时保持宽度/高度比?
在我的特定情况下,我的视图控制器中有一个UIImageView。当视图调整大小时,我希望我的图像视图调整大小,但保持3:2的宽度:高度比。在IB中可以做到吗?可以用代码来做吗?
谢谢!
答案 0 :(得分:36)
您可以通过控制从视图拖动到自身并选择宽高比来在IB中添加宽高比约束。
答案 1 :(得分:34)
我认为你不能在IB中做到这一点,但在代码中,可以这样做(iv是我对图像视图的出口):
[self.iv removeConstraints:self.iv.constraints];
NSLayoutConstraint *con1 = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100];
NSLayoutConstraint *con2 = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.iv attribute:NSLayoutAttributeWidth multiplier:.66 constant:0];
[self.iv addConstraints:@[con1,con2]];
这显式地将高度设置为100,并将宽高比设置为3:2。