iOS里面用到的布局用户界面主要有三种方法:
Programmatically lay out/use autoresizing masks/Auto Layout
1. Programmatically lay out(最复杂的)
这个根据字面意思很好理解,直面意思就是编程布局。就是用代码来实现控件的布局。比如说用代码创建一个控件后,来设置它在父容器里面的frame。
2. Use autoresizing masks(简单一些了)
就是用autoresizing masks来实现控件布局。在object c里,autoresizing masks是一个枚举类型。
enum {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;
这个是用来告诉子视图如何改变自己的大小(frame),当父视图发生改变时。
3. Auto Layout(最简单的)
用一系列的约束来定义用户界面。约束是用来定义两个视图之间的关系等。
summaries: 1/2 都是基于frame来实现布局的,3是基于constraints来实现布局的。