自动布局

  • 代码
 1 - (void)viewDidLoad
 2 {
 3     [super viewDidLoad];
 4     
 5     UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 6     [button setTitle:@"哈哈哈" forState:UIControlStateNormal];
 7     [self.view addSubview:button];
 8 
 9     //1.  关闭autoresize自动翻译
10     button.translatesAutoresizingMaskIntoConstraints = NO;
11 
12     //2.  构建约束
13     NSDictionary * map = NSDictionaryOfVariableBindings(button);
14     NSString * format = @"|-10-[button]-10-|";
15     NSArray * constains1 = 
16     [NSLayoutConstraint constraintsWithVisualFormat:format
17                                             options:0
18                                             metrics:nil
19                                               views:map];
20     //3.  约束加入视图
21     [self.view addConstraints:constains1];
22     [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[button(==20)]" options:0 metrics:nil views:map]];
23 
24 
25     UIButton * button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
26     [button1 setTitle:@"左按钮" forState:UIControlStateNormal];
27     [self.view addSubview:button1];
28     
29     UIButton * button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
30     [button2 setTitle:@"右按钮" forState:UIControlStateNormal];
31     [self.view addSubview:button2];
32     
33     //1.
34     button1.translatesAutoresizingMaskIntoConstraints = NO;
35     button2.translatesAutoresizingMaskIntoConstraints = NO;
36     
37     //2.
38     
39     NSDictionary * views = NSDictionaryOfVariableBindings(button1,button2);
40     NSArray * horizontal =
41     [NSLayoutConstraint constraintsWithVisualFormat:
42      @"|-10-[button1]-10-[button2(==button1)]-10-|"
43                                             options:
44      NSLayoutFormatAlignAllCenterY
45                                             metrics:nil
46                                               views:views];
47     
48     [self.view addConstraints:horizontal];
49     
50     NSArray * bottom =
51     [NSLayoutConstraint constraintsWithVisualFormat:
52      @"V:[button1]-10-|"
53                                             options:0
54                                             metrics:nil
55                                               views:views];
56     
57     [self.view addConstraints:bottom];
58     
59     
60     
61 }
  • IB

    在Interface Builder中,右下角的3个按钮用于设置自动布局。

原文地址:https://www.cnblogs.com/ubersexual/p/3285773.html