autolayout旋转时更新图像大小

时间:2013-07-08 02:56:46

标签: ios uiimageview autolayout screen-rotation

我对自动布局很新。我有一个简单的UIViewController,它包含一个View和一个UIImageView。

在人像模式下,此图像为320x115像素,但我希望在旋转到风景时降低图像高度。

目前我对我的图片有以下限制。 -Height等于115px - 超级视图的跟踪空间 - 领导空间到superview -Top Space to supverview

当从纵向旋转到风景时,如何使我的UIView具有成比例的垂直尺寸?

感谢您的帮助,

塞巴斯蒂安。

1 个答案:

答案 0 :(得分:2)

如果你想要相同的比例尺寸115到480(0.24),那么你使用constraintWithItem中的乘数参数:attribute:relatedBy:toItem:attribute:multiplier:constant:。

在下面的示例中,我将IBOutlet设置为IB(heightCon)中的高度约束,然后在代码中删除它并添加另一个基于self.view的高度的一部分(iv是我的图像出口)视图):

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.iv removeConstraint:self.heightCon];
    NSLayoutConstraint *newHeightCon = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:0 toItem:self.view attribute:NSLayoutAttributeHeight multiplier:.24 constant:0];
    [self.view addConstraint:newHeightCon];
}