【问题标题】:iOS 14 display status bar in landscapeiOS 14 横向显示状态栏
【发布时间】:2020-11-26 12:40:40
【问题描述】:

从 iOS 8 开始,状态栏默认是横向隐藏的,我想让它可见。我创建了一个新的空项目并尝试了其他主题的一些东西,但这些都不起作用:

  1. 我尝试的第一个解决方案(我还在 Info.Plist 中添加了 UIViewControllerBasedStatusBarAppearance 键,并将其设置为 true 或 false 进行测试):
import UIKit
    
class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        setNeedsStatusBarAppearanceUpdate()
    }
        
    override var prefersStatusBarHidden: Bool {
        return false
    }
}
  1. 我尝试的第二种解决方案是在 App Delegate 中使用已弃用的方法 setStatusBarHidden
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    application.setStatusBarHidden(false, with: .none)
    // Override point for customization after application launch.
    return true
}

在这两种情况下,状态栏都不会横向显示。有什么办法可以看到吗?

【问题讨论】:

    标签: swift uikit


    【解决方案1】:

    您的代码是正确的(这是您在新的 vanilla iOS 应用项目中所需要的全部内容):

    override var prefersStatusBarHidden: Bool {
        return false
    }
    

    问题在于,这只能在 iOS 12 之前使用。 在 iOS 13 及更高版本中,运行时停止解释 false 的值,以允许您覆盖隐藏状态栏iPhone 上的风景。同样,调用application.setStatusBarHidden 也无法横向显示状态。

    这可能是 iOS 13 中引入的 UIWindowScene 架构的副作用。或者它可能旨在使所有 iPhone 型号的行为方式相同(带或不带边框)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多