【问题标题】:How to get the status bar height in iOS Extension如何在 iOS 扩展中获取状态栏高度
【发布时间】:2016-02-04 09:33:04
【问题描述】:

我可以通过

从普通应用程序中的 UIApplication 获取状态栏
[UIApplication sharedApplication].statusBarFrame

但我们无法从 Extension 访问 UIApplication。有没有办法在共享中找到获取状态栏?

【问题讨论】:

  • 为什么你想要状态栏高度,在所有设备中它总是 20。
  • 需要什么样的扩展才能知道状态栏的框架?
  • 我正在为该视图控制器使用自定义动画的高度。我发现从扩展名获取状态栏没有任何意义。因此我必须更改动画。
  • kiran 如果用户正在通话,则不是 20。有时它是 0。

标签: ios uiviewcontroller uiapplication ios8-share-extension share-extension


【解决方案1】:

您可以使用safeAreaLayoutGuide 来计算布局框架。 例如,

viewController.view.safeAreaLayoutGuide.layoutFrame.minY

【讨论】:

    【解决方案2】:

    备用选项:

    如果您使用带有NavigationBar 的视图控制器,则可以将其y 位置视为StatusBar 高度,以防safeAreaLayoutGuidewindow?.windowScene?.statusBarManager?.statusBarFrame.height 选项不可用或不可用。

    let statusBarHeight = navigationController?.navigationBar.frame.origin.y ?? 0
    

    【讨论】:

      猜你喜欢
      • 2019-11-23
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 2011-04-22
      • 2013-12-15
      • 1970-01-01
      相关资源
      最近更新 更多