autoLayout自动布局 约束视图和视图之间的关系 来分配 屏幕上的位置
使用VFL(Visual Format Language 视觉格式语言)通过添加字符串 来约束视图和视图之间的关系
VFL: 需有 横 竖 两个方向 的约束
横向: H:
| 表示他的父视图
-50- 表示后面视图 与前面视图的距离 (后面视图是textField,前面视图是他的父视图)
[textField(>=200)] 要约束视图的宽 (>=200)允许最小的宽度是200 如果是竖向 就是允许最小的高度
@"H:|-50-[textField(>=200)]-50-|"
距离坐边原点距离50 右边边界距离50 允许视图的最小宽度是200
竖向: V:
使用autoLayout 必须把translatesAutoresizingMaskIntoConstraints禁用才可以使用
相对布局是找一个参照物 拿参照物当做基础,设置他和参照物的相对距离 来设置自己的位置
UIView *view1 = [self createWithClass:@"UIView"];
view1.backgroundColor = [UIColor redColor];
UIView *view2 = [self createWithClass:@"UIView"];
view2.backgroundColor = [UIColor orangeColor];
NSDictionary *views = NSDictionaryOfVariableBindings(view1,view2);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-50-[view1(>=100)]-50-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-100-[view1(30)]" options:NSLayoutFormatAlignAllLeft metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-50-[view2(>=100)]-50-|" options:NSLayoutFormatAlignAllLeft metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view1]-100-[view2(30)]" options:NSLayoutFormatAlignAllLeft metrics:nil views:views]];
- (UIView *)createWithClass:(NSString *)inputView{
UIView *view = [[NSClassFromString(inputView) alloc] init];
view.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:view];
return view;
}