我正在尝试为iPhone X屏幕优化应用程序。当前,它在大多数屏幕上显示黑色或白色条。例如,我将使用PaymentMethodsView
。
PaymentMethodsView
是自定义的UIView
,在水平StackView
中包含1或2个按钮,superView具有灰色背景。当前StackView
的超级视图(全部4面)的约束为16px。目前在iPhone X上看起来像这样(在普通iPhone上,视图仅在屏幕底部:
我要在这里实现的是,灰色区域延伸到屏幕底部,而黄色位于整个视图底部所在的位置。 (因此降低了16像素)
我可以通过为此Use Safe Area Layout Guide
启用ViewController
,将viewController中的PaymentMethodsView
约束到侧面的0 to safe area
和0 to superview
来使它工作在底部。然后在PaymentMethodsView
本身中,将所有StackView
的约束更改为safe area
而不是superview
,并将底部约束更改为0而不是16。
效果很好,除了在普通iPhone上,底部16px(在StackView下)消失了,并将黄色按钮放在屏幕底部。
我该如何解决?
bottom safe area
的0px 谢谢!
答案 0 :(得分:3)
您可以通过在堆栈视图中添加两个底部约束来实现此目的...
首先,将灰色视图底部的零约束到视图的底部(其超级视图),将 不是 约束到安全区域。然后
>= 16
处的grayView底部(其超级视图)添加一个约束0
到Priority: 999
这表示:将stackView的底部至少保持其父视图(灰色视图)的底部
和
999
说,如果可能,将其放置在安全区域底部的零点处
在iPhone 7上的结果:
以及在iPhone XS上
答案 1 :(得分:0)
下面的代码对我有用,试试看,
点击你的视图控制器
从右侧面板中选择 Identify and Type
在Interface Builder Document
下启用Use Safe Area Layout
现在无论您想将任何视图放置到底部,只需给出与视图不安全区域相对应的约束