如何为iOS中的特定设备设置顶级空间约束?

时间:2016-11-29 11:57:31

标签: ios iphone xcode autolayout constraints

我正在使用Xcode7.3.1。我已经在屏幕上设置了Autolayout。它在iphone5,6上工作得很好。但是iphone4s无法正常看到屏幕。 这个屏幕我将顶部空间添加到150.但是当我在iphone4s中运行应用程序时,底部部分无法显示。这里我将屏幕看起来像iphone4S。如何解决这个问题?

enter image description here

顶部空间看起来像xib

enter image description here

3 个答案:

答案 0 :(得分:6)

作为一个快速选项,您可以设置一个不可见的间隔视图,其高度相对于屏幕高度:将“等高”约束添加到主视图并将乘数设置为,例如0.1。因此,您的垫片将占据屏幕的10%。 然后,您可以将此视图用作顶部约束。

以下是Interface Builder中的示例。我将间隔物涂上颜色只是为了在这里显示,所以不要忘记将其背景颜色设置为“清除颜色”。 enter image description here

答案 1 :(得分:1)

您需要为顶部约束创建一个出口,并通过代码设置此顶部约束值,如下所示:

@IBOutlet weak var topConstForSubView: NSLayoutConstraint!

if  iPHONE4 {
    self.topConstForSubView.constant = 60
}

答案 2 :(得分:0)

作为@Sarabjit Singh的答案: 可能是一个更好/不同的解决方案是采用比例进行持续更正:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *YConstraint;

...

- (void) viewWillAppear:(BOOL)animated {
    CGFloat scale = [[UIScreen mainScreen] scale];
    if (scale == 2) {
        self.YConstraint.constant = 75; // for example
    } else if (scale == 3) {
        self.YConstraint.constant = 105; // for example
    }
}