【问题标题】:iPhone X Safe Area Appears to be below Opaque ToolbariPhone X 安全区域出现在不透明工具栏下方
【发布时间】:2018-03-23 21:45:02
【问题描述】:

我无法正确地将 iPhone X 上的视图限制在底部不透明工具栏的上方。

您可以在此处看到,限制在安全区域底部的视图被工具栏遮挡:

而对于其他 iPhone 型号和尺寸,视图正确显示在工具栏上方:

这是我添加的约束:

谁能解释一下我该怎么做?

【问题讨论】:

标签: ios iphone cocoa-touch autolayout iphone-x


【解决方案1】:

我已经通过为有问题的 UIViewController 选择“在不透明条下扩展边缘”解决了这个问题:

启用选项:

禁用选项:

另一个选项是使用半透明工具栏,正如@Silmaril 在另一个问题的答案中提到的那样。

【讨论】:

  • 您确定您没有将工具栏样式也更改为半透明吗?因为当工具栏不透明时,我仍然可以重现您的错误。这意味着启用Extend edges under Opaque Bars 不是解决办法
【解决方案2】:

这绝对是 iOS 错误。

尝试使用半透明工具栏,因为当工具栏为半透明时,错误无法重现。

其他选项是添加工具栏directly on view controller

【讨论】:

  • 安全区域的顶部是屏幕的顶部,因此标签将在状态栏下方对齐。但是我需要标签位于底部。
  • 哦,对不起。我在脑海中混淆了安全区域和布局指南。顺便说一句,我只是在您的屏幕截图上看不到工具栏。我刚刚尝试从Single View App 模板创建测试项目。我在 iPhone X 上没有遇到您的问题。您的屏幕截图上的黑色区域是什么?我也没有
  • 您似乎使用了模拟指标。在这种情况下,这只是 Interface Builder 的错误。当真正的工具栏出现时,尝试在 iPhone X 模拟器上运行你的应用程序。如果那里没有其他错误(这次是 iOS 中的错误),您应该不会遇到此问题
  • 当然问题出在模拟器上。黑色区域是一个模拟的不透明工具栏,它在描述中有所说明。只需使用 UIViewController 的 toolbarItems 属性将任何按钮添加到底部工具栏,您将看到该工具栏将部分覆盖视图,就像它在 IB 中显示的一样。
  • toolbarItems 属性不要将工具栏视图添加到视图控制器。引用文档This property contains an array of UIBarButtonItem objects and works in conjunction with a UINavigationController object. 你在使用导航控制器吗?
【解决方案3】:

使用大小来适应内容 ⌘ (+) =

【讨论】:

    猜你喜欢
    • 2018-03-03
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多