天天看點

界面布局之VFLVFL(Visual Format Language)

VFL(Visual Format Language)

簡單說明:

H 橫向

V 縱向

| 父視圖邊緣

- 預設距離

[viewName(30)] view用[]擴住,不能有self之類的關鍵字(會報錯,原因後續),view的寬或者高為30

- 10 - 兩者間距10

[viewName(>[email protected])] 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 = @;
    //等同于 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: metrics:mertrics views:views];
    [self.view addConstraints:constraintsV] ;
           

繼續閱讀