iOS leftSpacingConstraint 相对于屏幕高度
iOS leftSpacingConstraint relative to screen height
我正在做一个较旧的 iOS 项目,主要用 Objective C 编写。
我在代码中有这些行(将对象设置到屏幕中间):
self.leftSpacingConstraint.constant = 250.0;
self.rightSpacingConstraint.constant = 250.0;
我想更改这些与屏幕宽度相关的限制。我该怎么做?
谢谢
可能是这样的:
[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f]];
或者,如果您使用了 .xib 文件,请删除 left
和 right
约束并添加 centerHorizontal
查看设备的屏幕宽度,并根据需要应用正确的常量。
// 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 for example, or pull third party libraries。
我正在做一个较旧的 iOS 项目,主要用 Objective C 编写。 我在代码中有这些行(将对象设置到屏幕中间):
self.leftSpacingConstraint.constant = 250.0;
self.rightSpacingConstraint.constant = 250.0;
我想更改这些与屏幕宽度相关的限制。我该怎么做? 谢谢
可能是这样的:
[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f]];
或者,如果您使用了 .xib 文件,请删除 left
和 right
约束并添加 centerHorizontal
查看设备的屏幕宽度,并根据需要应用正确的常量。
// 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 for example, or pull third party libraries。