【问题标题】:Status bar entire view moves down - iOS 11状态栏整个视图向下移动 - iOS 11
【发布时间】:2017-11-30 08:45:55
【问题描述】:

我最近升级到 Xcode 9-beta 和 iOS 11。当我这样做并在我的项目上推送播放时,我的所有视图都被状态栏向下推送了大约 20 像素,而不是状态栏直接位于我的顶部看法。我有 iOS 10 的伙伴没有这个问题。我已附上截图供您参考。

谁能给点建议?任何帮助将非常感激。提前非常感谢。

干杯, 西奥

【问题讨论】:

  • 检查顶部约束。
  • 你使用的是 xcode-9 beta 还是 beta 2?
  • @KKRocks 我在我的电脑上使用 xcode-9,在手机上使用 ios11 beta 2。这有帮助吗?
  • @NikhilManapure 可以,但这在每个视图中都会发生。奇怪吧?
  • 我认为是 xcode 问题。尝试检查 xcode 9 beta 2.adcdownload.apple.com/Developer_Tools/Xcode_9_beta_2/…

标签: ios swift uiview uikit ios11


【解决方案1】:

快速回答

您可能希望将tableViewscrollView 对象的contentInsetAdjustmentBehavior 设置为.never

if #available(iOS 11.0, *) {
    tableView.contentInsetAdjustmentBehavior = .never
}

if #available(iOS 11.0, *) {
    scrollView.contentInsetAdjustmentBehavior = .never
}

【讨论】:

  • 如果需要,也可以在storyboard中实现。选择 scrollView、tableView 或 collectionView 后,将 Content Insets 下拉菜单从自动更改为从不。
  • 如果我不使用 tableView 或 scrollView 会怎样
  • 我相信这样你需要检查亚瑟的答案。
【解决方案2】:

我遇到了同样的问题,经过几个小时的搜索,我终于找到了问题。

Xcode 9 有一个安全区域的新概念,默认情况下,故事板现在在所有视图的顶部添加一个安全区域。

如果您选择 ViewController 的根视图并选择 Size Inspector,您将看到一个复选框,如您在 image

取消选中它,这个顶部填充将消失。

【讨论】:

  • 这是最好的答案
  • 轻微修正,这个复选框在文件检查器菜单中。
【解决方案3】:
if (@available(iOS 11.0, *)) {
        _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

【讨论】:

    【解决方案4】:

    如果使用UITableViewStyle.grouped - 即使您添加tableView.contentInsetAdjustmentBehavior = .never,35px 的间隙仍然存在。 尝试将UITableViewStyle 更改为plain。这为我解决了一个问题。

    【讨论】:

    • 天哪!这不是一个安全区域插图 - 这是设计的部分转换!你是我的英雄!
    猜你喜欢
    • 2014-02-08
    • 2018-05-30
    • 2015-03-12
    • 2016-09-05
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多