我已经用Interface Builder布置了一些子视图,但是我想用代码代替。
我已经阅读了有关设置view.autoresizingMask属性的 UIView文档。我正在寻找一种逻辑解释,说明如何使用提供的各种遮罩(例如UIViewAutoresizingFlexibleLeftMargin)来平移支柱和弹簧。
UIViewAutoresizingFlexibleLeftMargin
为视图设置自动调整大小蒙版时,请使用按位包含(或|)的OR()(Objective-C)或数组(Swift 2、3、4)来指定 springs 和 struts 。
|
*通过指定掩码(分别是Objective-C或Swift)来表示 *弹簧 :
垂直弹簧: UIViewAutoresizingFlexibleHeight或.flexibleHeight
UIViewAutoresizingFlexibleHeight
.flexibleHeight
卧式弹簧: UIViewAutoresizingFlexibleWidth或.flexibleWidth
UIViewAutoresizingFlexibleWidth
.flexibleWidth
支柱 是由缺少四个“柔性余量”掩膜之一(即,如果支柱不存在,被指定为余量的掩模)表示:
UIViewAutoresizingFlexibleLeftMargin 要么 .flexibleLeftMargin
.flexibleLeftMargin
UIViewAutoresizingFlexibleRightMargin 要么 .flexibleRightMargin
UIViewAutoresizingFlexibleRightMargin
.flexibleRightMargin
UIViewAutoresizingFlexibleTopMargin 要么 .flexibleTopMargin
UIViewAutoresizingFlexibleTopMargin
.flexibleTopMargin
UIViewAutoresizingFlexibleBottomMargin 要么 .flexibleBottomMargin
UIViewAutoresizingFlexibleBottomMargin
.flexibleBottomMargin
例如,具有 水平弹簧 以及 顶部和底部支撑 的视图将具有宽度,并且左右边界指定为可伸缩的:
斯威夫特3和4
mySubview.autoresizingMask = [.flexibleWidth, .flexibleLeftMargin, .flexibleRightMargin]
迅捷2
mySubview.autoresizingMask = [.FlexibleWidth, .FlexibleLeftMargin, .FlexibleRightMargin]
斯威夫特1.2
mySubview.autoresizingMask = .FlexibleWidth | .FlexibleLeftMargin | .FlexibleRightMargin
目标C
mySubview.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin);