使用 View Swift 部分覆盖 UIStatusBar

Posted

技术标签:

【中文标题】使用 View Swift 部分覆盖 UIStatusBar【英文标题】:Partially cover UIStatusBar with View Swift 【发布时间】:2016-08-15 21:42:58 【问题描述】:

我想让我的侧边栏菜单视图打开到全屏高度,以便它甚至覆盖状态栏,但让状态栏的右侧可见。现在它在状态栏下打开,即使我将视图框架设置为

let statusBarHeight = UIApplication.sharedApplication().statusBarFrame.size.height
let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenHeight = screenSize.height
sidebarContainerView.frame = CGRectMake(-barWidth - 1, screenSize.origin.y + 10, barWidth, screenHeight + statusBarHeight)

我的视图是窗口的直接子视图。

【问题讨论】:

您不能将视图放置在状态栏的顶部,它要么显示要么不显示。 “正常”用例是在侧面板出现时完全隐藏状态栏,并在侧面板消失时重新出现。假设您出于自己的原因无法执行此操作,并且您绝对必须拥有此功能,您可以尝试拍摄屏幕该区域的快照或在显示侧面板时使用的其他内容。 @BJHStudios 我想状态栏不是绝对必要的,但现在我遇到了无法从我的菜单 swift 文件中隐藏状态栏的问题。 【参考方案1】:

视图不能放在状态栏的前面。超出状态栏底部的任何视图都将被它覆盖。此外,它完全违反了 Apple 的 iOS 人机界面指南,如 here 所述。另外,您说要隐藏状态栏。只有在显示媒体时才应该这样做。不要永久隐藏它,因为这也违反了准则。

【讨论】:

@A_Tyshka 我理解用户看到状态栏更方便,所以我只想在菜单打开时部分覆盖它。它使应用看起来更干净。 我知道您认为它更干净,但据我所知,它无法完成。即使它可能会违反 Apple 的指导方针,这将严重危及您进入 App Store 的机会。

以上是关于使用 View Swift 部分覆盖 UIStatusBar的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将 SKScene 覆盖在 SCNScene 上?

Swift 怎么用xib 自定义View

Swift 子类化 - 如何覆盖 Init()

如何使用Swift 4将数据从Pop-Over子视图传递到View Controller

【iOS】UIButton超出父视图点击无效(swift)

表格视图部分 Swift3 的页脚中的按钮