有没有办法放置NSUInteger
:
NSUInteger number = 20;
在这个约束中?
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-25-[btn1]-25-[btn2(==btn1)]-25-[btn3(==btn1)]-25-[btn4(==btn1)]-25-[btn5(==btn1)]-25-|" options:0 metrics:nil views:views]];
所以我希望它所说的25的位置是20,但它应该由number
表示。
注意:我希望最终产品最终使用变量宽度:
NSUInteger widthOfScreen = [UIScreen mainScreen].bounds.size.width;
NSUInteger width = (widthOfScreen - 55 * 5) / 6;
答案 0 :(得分:2)
这就是metrics
参数的用途。您传递了命名指标的字典,如下所示:
@{@"number": 20}
然后,在可视格式中,您使用该命名度量而不是硬编码数值
@"H:|-number-[btn1]-number-[btn2(==btn1)]-number-[btn3(==btn1)]-number-[btn4(==btn1)]-number-[btn5(==btn1)]-number-|"
答案 1 :(得分:0)
如果还有时间,请使用Masonry。它缩短了构建和修改约束所需的开发时间。对我来说,这是唯一的出路。变量只能传递给约束生成器块。
[self.view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(number).with.offset(10);
make.bottom.equalTo(@20).with.offset(10);
make.left.equalTo([NSNumber numberWithFloat:20.0f]).with.offset(10).with.priorityHigh();
make.right.eqalTo(number);
}];