我正在开发一个较旧的iOS项目,主要是在Objective C中编写的。 我在代码中有这些行(将对象设置到屏幕中间):
self.leftSpacingConstraint.constant = 250.0;
self.rightSpacingConstraint.constant = 250.0;
我想相对于屏幕宽度更改这些约束。我该怎么办? 感谢
答案 0 :(得分:1)
也许是这样的:
[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f]];
或者,如果您使用.xib文件,请删除left
和right
约束并添加centerHorizontal
答案 1 :(得分:1)
查看设备的屏幕宽度,并根据您的需要应用正确的常量。
// iPhone 6Plus / 6s Plust / 7Plus = 414
// iPhone 6 / 6s / 7 / 7s = 375
// iPhone 5 / 5s / SE = 325
// sizes: http://www.idev101.com/code/User_Interface/sizes.html
NSInteger screenWidth = (NSInteger)[[UIScreen mainScreen] bounds].size.width;
CGFloat leftConstant = 0;
CGFloat rightConstant = 0;
switch (screenWidth) {
case 325:
leftConstant = 1;
rightConstant = 1;
break;
case 375:
leftConstant = 2;
rightConstant = 2;
break;
case 414:
leftConstant = 3;
rightConstant = 3;
break;
}
self.leftSpacingConstraint.constant = leftConstant;
self.rightSpacingConstraint.constant = rightConstant;
这是一种简单的方法,您可以定义macros,或者将third party libraries拉入我们的项目。