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 文件,请删除 leftright 约束并添加 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