在界面构建器中,我们可以固定高度,固定宽度,使两个视图的宽度相等,但是我如何设置约束,以便当调整视图大小时,它保持其宽/高比?
在我的特殊情况下,我的视图控制器中有一个UIImageView。当视图调整大小时,我希望我的图像视图调整大小,但保持3:2的宽:高比例。可以在IB中完成吗?有没有可能用代码来实现呢?
谢谢!
发布于 2014-03-16 00:40:10
通过控制从视图拖动到视图本身并选择纵横比,可以在IB中添加纵横比约束。
发布于 2013-01-07 08:30:51
我不认为你可以在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。
发布于 2015-05-02 02:39:51
苹果的这本指南对我真的很有帮助--它概述了两种方法,一种是关闭某些子视图的AutoLayout并直接设置框架,另一种是通过代码使用纯AutoLayout。
https://developer.apple.com/library/ios/technotes/tn2154/_index.html
https://stackoverflow.com/questions/14188187
复制相似问题