我已经完成了我的项目,只是为了在iPhone 6Plus中实现奇怪的字体和空格。
我已经创建了拖放XIB文件的所有约束。我的同事在全局函数中添加了这些代码,因此我可以应用乘数:
- (float)constraintScale {
if (IS_STANDARD_IPHONE_6_PLUS) {
return 1.29;
}
return 1.0;}
- (float)textScale {
if (IS_STANDARD_IPHONE_6_PLUS)
{
return 1.16;
}
return 1.0; }
我的问题是现在必须将每个(超过100个)约束拖到我的代码中,并使用这些乘数和比例应用每个约束。有没有更方便的方法将乘数添加到我的XIB文件?我已经考虑过继承,但这可能会花费相同的时间吗?
答案 0 :(得分:1)
self.view.constraints
将为您提供视图的所有约束。
for(NSLayoutConstraint *c in self.view.constraints)
{
c.multiplier = [self constraintScale];
}
可能有用。希望它有所帮助。
编辑: 对于readonly问题感到抱歉。另一种摆脱这个问题的方法可能是;
NSMutableArray *constraintsNew = [NSMutableArray new];
for (NSLayoutConstraint *c in self.view.constraints)
{
NSLayoutConstraint *newC = [NSLayoutConstraint constraintWithItem:c.firstItem
attribute:c.firstAttribute
relatedBy:c.relation
toItem:c.secondItem
attribute:c.secondAttribute
multiplier:[self constraintScale]
constant:c.constant];
[constraintsNew addObject:newC];
}
[self.view removeConstraints:self.view.constraints];
[self.view addConstraints:constraintsNew];