Swift中的约束不起作用

时间:2017-10-03 09:44:22

标签: ios iphone nslayoutconstraint

我试图在视图中添加一些约束,但每次切换设备时,视图都会变得疯狂。我怎样才能解决这个问题?

我希望它看起来如何以及它在iPhone 8 Plus上的样子:

How I want it to look and how it looks like on the iPhone 8 Plus

切换到iPhone SE时的样子:

How it looks like when I switch to iPhone SE

我添加了这些约束:

  • 0 top
  • 0 left
  • 0 right
  • 686 bottom

3 个答案:

答案 0 :(得分:2)

如果您的底部约束大于设备的高度,那么它自然会超出范围

此外,如果屏幕的高度小于686,您的约束将不明确。

您需要使用高度约束,常量为50 来设置视图而不是底部约束。

答案 1 :(得分:0)

对任何约束都有如此巨大的价值并不可取。因此,在更换设备时,屏幕的高度可能会发生变化,您的约束也会中断。

首选方法是创建高度约束并将其设置为686,并且不再设置底部约束,因为它不再需要。但是如果屏幕尺寸较小,则会出现问题,因为底部的视图将不可见。要解决此问题,您应该使用scrollview并将此内容视图放在滚动视图中。

答案 2 :(得分:0)

您可以设置View的高度约束而不是底部约束
                              要么 你可以使用Size类