我正在使用Xcode7.3.1
。我已经在屏幕上设置了Autolayout
。它在iphone5,6上工作得很好。但是iphone4s
无法正常看到屏幕。
这个屏幕我将顶部空间添加到150.但是当我在iphone4s
中运行应用程序时,底部部分无法显示。这里我将屏幕看起来像iphone4S。如何解决这个问题?
顶部空间看起来像xib
答案 0 :(得分:6)
作为一个快速选项,您可以设置一个不可见的间隔视图,其高度相对于屏幕高度:将“等高”约束添加到主视图并将乘数设置为,例如0.1。因此,您的垫片将占据屏幕的10%。 然后,您可以将此视图用作顶部约束。
以下是Interface Builder中的示例。我将间隔物涂上颜色只是为了在这里显示,所以不要忘记将其背景颜色设置为“清除颜色”。
答案 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
}
}