【问题标题】:iOS status bar background overlaps UIAlertControlleriOS 状态栏背景重叠 UIAlertController
【发布时间】:2019-01-24 16:05:01
【问题描述】:

我的应用程序的主视图是嵌入在UITabBarController 中的可滚动UICollectionView。我没有使用导航栏,当用户滚动时,他会看到状态栏后面的单元格,因为状态栏没有背景。

我在我的 AppDelegate 中使用了UIApplication.shared.statusBarView?.backgroundColor = .white 来应用背景并使状态栏看起来像想要的那样。

这很好用,但是当您展示 UIAlertController 时看起来不太好。

白色状态栏停留在暗色背景上方。

有没有更好的方法将背景应用到状态栏或将其保留在UIAlertController 背景后面?

【问题讨论】:

  • 你从哪里得到statusBarView?那是您的自定义视图吗?为了尝试展示示例解决方案的人们,您使用情节提要还是编写约束代码?
  • UIApplication.shared.statusBarView?.backgroundColor = .white 发生在 AppDelegate 中。没有故事板。

标签: ios swift uialertcontroller


【解决方案1】:

您可以尝试在演示文稿的顶部使用带有背景颜色的UIView UIView

状态栏的高度可以来自UIApplication.shared.statusBarFrame。并在收到UIApplication.didChangeStatusBarFrameNotification 时更新您的视图大小。

【讨论】:

  • 效果很好。唯一困扰我的是 UIApplication.shared.statusBarFrame.height 在 didChangeStatusBarFrame 触发时不是最新的。我想这是因为首先需要进行一些布局。我现在将更新包装在 DispatchQueue.main.async 中以获得正确的高度。不是最好的,但它有效。如果您有更好的主意,请告诉我。
  • 通知信息字典中没有关于新框架的信息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 2015-06-01
  • 2013-09-24
  • 2016-01-01
  • 1970-01-01
  • 2018-03-03
  • 2018-04-10
相关资源
最近更新 更多