无法隐藏状态栏-Swift 3,

owl*_*ipe 47 xcode ios swift swift3

我经常隐藏状态栏

override func prefersStatusBarHidden() -> Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

但Xcode给了我一个错误,说"方法不会覆盖其超类中的任何内容".

如果我删除了override,Xcode会给出一个不同的错误:"方法"prefersStatusBarHidden()'与Objective-C选择器'prefersStatusBarHidden'与来自超类'UIViewController'的'prefersStatusBarHidden'的getter冲突与同一个Objective-C选择器"


我还在Target的常规设置中选中了"隐藏状态栏":

在此输入图像描述

但状态栏仍然显示.


我在另一个Stack Overflow答案中找到了这个方法

UIApplication.shared.setStatusBarHidden(true, with: .none)
Run Code Online (Sandbox Code Playgroud)

但这也不会隐藏状态栏.


在Xcode 8 Beta 1中,我使用了第一种和第二种方法,它们可以隐藏状态栏(第一种方法没有返回错误).现在我可以用Xcode 8 Beta 4隐藏状态栏吗?

注意:状态栏显示在模拟器设备和物理设备上,均运行iOS 10.

Anb*_*hik 110

我们需要在Swift 3上覆盖属性本身(这是Xcode 8 Beta 4中的新功能):

override var prefersStatusBarHidden: Bool {  
    return true  
}  
Run Code Online (Sandbox Code Playgroud)

另一个例子也可以到这里这里

有关这种变化以及为什么有必要的更多信息,请参阅Matt对此的最佳答案.

  • 如果你需要进行更改隐藏状态栏...说完成某事 - 比如动画.在完成块中只需执行UIApplication.shared.isStatusBarHidden = true =>这将适用于Swift 3 (2认同)

归档时间:

查看次数:

25350 次

最近记录:

8 年,1 月 前