屏幕底部的按钮:iPhone X vs 常规屏幕
Button on bottom of screen: iPhone X vs regular screen
我正在尝试针对 iPhone X 屏幕优化应用程序。目前它在大多数屏幕上显示黑条或白条。作为示例,我将使用 PaymentMethodsView
.
PaymentMethodsView
是一个自定义 UIView
,在水平 StackView
中包含 1 或 2 个按钮,superView 具有灰色背景。这个 StackView
当前被限制为 16px 到超级视图(所有 4 个边)。目前它在 iPhone X 上看起来像这样(在常规 iPhones 上,视图就在屏幕底部:
我在这里想要实现的是灰色区域延伸到屏幕底部,而黄色区域位于整个视图底部的位置。 (因此降低了 16 像素)
我可以通过为这个 ViewController
启用 Use Safe Area Layout Guide
,将 viewController 中的 PaymentMethodsView
约束到侧面的 0 to safe area
来实现它, 0 to superview
在底部。然后在 PaymentMethodsView
本身中,我将所有 StackView
的约束更改为 safe area
而不是 superview
,并将底部约束更改为 0 而不是 16。
这工作正常,除了常规 iPhones 底部的 16px(在 StackView 下)消失并将黄色按钮放在屏幕底部。
我该如何解决这个问题?
- On iPhone X:灰色区域到屏幕底部,按钮0px到
bottom safe area
- On regular iPhones: 屏幕底部的灰色区域,黄色按钮和屏幕底部之间的 16px。
谢谢!
您可以通过向堆栈视图添加两个底部约束来做到这一点...
首先,将 grayView Bottom at Zero 约束到视图(它的父视图)的底部,而不是到safe-area.那么
- 在
>= 16
从 stackView Bottom 添加一个约束到 grayView(它的父视图)的底部
- 以及从 stackView 底部到 safe-area 的 底部的第二个约束
0
Priority: 999
This says: 保持 stackView 的底部 至少 距离它的父视图底部(灰色视图)至少 16 点
和
999
说把它放在 safe-area 底部的 Zero-pts if possible
iPhone 7 的结果:
和 iPhone XS
下面的代码对我有用,试一试,
点击你查看控制器
Select Identify and Type
来自右侧面板
在 Interface Builder Document
下启用 Use Safe Area Layout
现在无论你想把任何视图放在底部,只要给出与视图不安全区域相对应的约束
我正在尝试针对 iPhone X 屏幕优化应用程序。目前它在大多数屏幕上显示黑条或白条。作为示例,我将使用 PaymentMethodsView
.
PaymentMethodsView
是一个自定义 UIView
,在水平 StackView
中包含 1 或 2 个按钮,superView 具有灰色背景。这个 StackView
当前被限制为 16px 到超级视图(所有 4 个边)。目前它在 iPhone X 上看起来像这样(在常规 iPhones 上,视图就在屏幕底部:
我可以通过为这个 ViewController
启用 Use Safe Area Layout Guide
,将 viewController 中的 PaymentMethodsView
约束到侧面的 0 to safe area
来实现它, 0 to superview
在底部。然后在 PaymentMethodsView
本身中,我将所有 StackView
的约束更改为 safe area
而不是 superview
,并将底部约束更改为 0 而不是 16。
这工作正常,除了常规 iPhones 底部的 16px(在 StackView 下)消失并将黄色按钮放在屏幕底部。
我该如何解决这个问题?
- On iPhone X:灰色区域到屏幕底部,按钮0px到
bottom safe area
- On regular iPhones: 屏幕底部的灰色区域,黄色按钮和屏幕底部之间的 16px。
谢谢!
您可以通过向堆栈视图添加两个底部约束来做到这一点...
首先,将 grayView Bottom at Zero 约束到视图(它的父视图)的底部,而不是到safe-area.那么
- 在
>= 16
从 stackView Bottom 添加一个约束到 grayView(它的父视图)的底部
- 以及从 stackView 底部到 safe-area 的 底部的第二个约束
0
Priority: 999
This says: 保持 stackView 的底部 至少 距离它的父视图底部(灰色视图)至少 16 点
和
999
说把它放在 safe-area 底部的 Zero-pts if possible
iPhone 7 的结果:
和 iPhone XS
下面的代码对我有用,试一试,
点击你查看控制器
Select
Identify and Type
来自右侧面板在
Interface Builder Document
下启用Use Safe Area Layout
现在无论你想把任何视图放在底部,只要给出与视图不安全区域相对应的约束