Fork me on GitHub

iOS自动布局之autoresizingMask的使用

写在前面的话

在iOS开发中,可能很少有人使用Autoresizing布局了,因为基本都使用强大的Autolayout了,Autoresizing可以做的Autolayout都可以做到,而且有一些是Autoresizing无法完成的,而且有强大的 Masonry库让约束写起来如此简洁。但在我们平时的开发中,可能封装一些小控件,并没有导入Masonry,如果我们所有代码添加约束时是特别麻烦,那么在一些简单的布局时可以尝试使用Autoresizing来玩玩。

UIView 的 autoresizingMask 属性

我们简单的看看UIViewAutoresizing的使用方法吧,其定义如下:

1
2
3
4
5
6
7
8
9
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public struct UIViewAutoresizing : OptionSet {

public init(rawValue: UInt)


public static var flexibleLeftMargin: UIViewAutoresizing { get }

public static var flexibleWidth: UIViewAutoresizing { get }

public static var flexibleRightMargin: UIViewAutoresizing { get }

public static var flexibleTopMargin: UIViewAutoresizing { get }

public static var flexibleHeight: UIViewAutoresizing { get }

public static var flexibleBottomMargin: UIViewAutoresizing { get }
}

UIViewAutoresizingNone

不做任何布局操作,默认是此类型

UIViewAutoresizingFlexibleLeftMargin

左边可变,右边距离固定。左边是灵活的

UIViewAutoresizingFlexibleWidth

宽度可变,两边固定。宽度是灵活的

UIViewAutoresizingFlexibleRightMargin

右边可变,左边固定。右边是灵活的

UIViewAutoresizingFlexibleTopMargin

上方可变,下方固定。顶部距离的灵活的

UIViewAutoresizingFlexibleHeight

高度可变,上下固定。高度是灵活的

UIViewAutoresizingFlexibleBottomMargin

底边距离可变,头部距离固定。底边距离是灵活的

代码

OC

1
2
UIView *view = [UIView new];
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

Swift

1
2
let view = UIView()
view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- END -
关注微信公众号,发现更多精彩

文章作者:梁大红

特别声明:若无特殊声明均为原创,转载请注明,侵权请联系

版权声明:署名-非商业性使用-禁止演绎 4.0 国际