界面布局之VFL

来源:互联网 发布:阿里云客服好做吗 编辑:程序博客网 时间:2024/05/29 08:43

VFL(Visual Format Language)

简单说明:
H 横向
V 纵向
| 父视图边缘
- 默认距离
[viewName(30)] view用[]扩住,不能有self之类的关键字(会报错,原因后续),view的宽或者高为30
- 10 - 两者间距10
[viewName(>=60@700)] view的宽或者高大于等于60(>=,==,<=),优先级为700(优先级最大为1000,数值越大越优先满足)
[view1][view2(==view1)] view1后接view2,且view2的宽或者高于view1相等

PS:view的translatesAutoresizingMaskIntoConstraints一定要设置为NO。

    UINavigationBar * LHNavigation = [[UINavigationBar alloc] init];    LHNavigation.translatesAutoresizingMaskIntoConstraints = NO;    UITabBar * LHTabBar = [[UITabBar alloc] init];    LHTabBar.translatesAutoresizingMaskIntoConstraints = NO;    UITableView * LHTable = [[UITableView alloc] init];    LHTable.translatesAutoresizingMaskIntoConstraints = NO;    //添加垂直方向的约束    NSNumber *margin = @20;    //等同于 NSDictionary *mertrics = [NSDictionary dictionaryWithObjectsAndKeys:20, @"margin", nil]    NSDictionaryOfVariableBindings(margin);    NSDictionary *mertrics = NSDictionaryOfVariableBindings(margin);    NSString *vflV = @"V:|-margin-[LHNavigation]-[LHTable]-[LHTabBar]-|";    NSDictionary * views = NSDictionaryOfVariableBindings(LHNavigation,LHTabBar,LHTable);    NSArray * constraintsV = [NSLayoutConstraint constraintsWithVisualFormat:vflV options:0 metrics:mertrics views:views];    [self.view addConstraints:constraintsV] ;
原创粉丝点击