自动布局约束:如何在调整大小时使视图保持其宽高比?

时间:2013-01-07 00:07:31

标签: ios xcode autolayout

在界面构建器中,我们可以固定高度,引脚宽度,使两个视图宽度相等,但是如何设置约束以便在调整视图大小时保持宽度/高度比?

在我的特定情况下,我的视图控制器中有一个UIImageView。当视图调整大小时,我希望我的图像视图调整大小,但保持3:2的宽度:高度比。在IB中可以做到吗?可以用代码来做吗?

谢谢!

2 个答案:

答案 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。