以编程方式向标签添加约束

时间:2016-04-25 17:52:56

标签: objective-c constraints

我有两个标签,

UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(10, 50, 200, 40)];
[label1 setBackgroundColor:[UIColor clearColor]];
[label1 setText:@"label1"];
[[self view] addSubview:label1];


// Create Label
UILabel *label2 = [[UILabel alloc]initWithFrame:CGRectMake(10, 50, 200, 40)];
[label2 setBackgroundColor:[UIColor clearColor]];
[label2 setText:@"label2"];
[[self view] addSubview:label2];

我想以编程方式在这两个标签之间创建一个空格,但我不确定如何这样做。我尝试过使用stackoverflow中的一些答案,但是他们给了我错误。

比如这个:

NSLayoutConstraint *c1 = [NSLayoutConstraint
                          constraintWithItem:UIl.label2
                          attribute:NSLayoutAttributeLeading
                          relatedBy:NSLayoutRelationEqual
                          toItem:self
                          attribute:NSLayoutAttributeLeading
                          multiplier:1.0f
                          constant:8.0f];

1 个答案:

答案 0 :(得分:0)

我建议使用砌体以编程方式应用约束。使用砌体,你可以做到:

Step1 - 约束标签1

[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view.mas_top); 
        make.left.equalTo(self.view.mas_left);
   }];

Step2 - 约束标签2

 [label2 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(label1.mas_top); 
            make.left.equalTo(label1.mas_left).with.offset(yourValue);
       }];