swift - iOS 14 横向显示状态栏
问题描述
由于iOS 8,状态栏默认隐藏在横向,我想让它可见。我创建了一个新的空项目并尝试了其他主题的几件事,但这些都不起作用:
- 我尝试的第一个解决方案(我还将
UIViewControllerBasedStatusBarAppearance
密钥添加到 Info.Plist 并使用它设置为 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
}
}
- 我尝试的第二个解决方案是在 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
}
在这两种情况下,状态栏都不会以横向显示。有什么办法可以看到吗?
解决方案
您的代码是正确的(这是您在新的 vanilla iOS 应用程序项目中所需要的全部内容):
override var prefersStatusBarHidden: Bool {
return false
}
问题是这只适用于 iOS 12。在 iOS 13 及更高版本中,运行时停止解释值,false
以允许您覆盖 iPhone 上横向状态栏的隐藏。同样,调用application.setStatusBarHidden
无法以横向显示状态。
这可能是 iOS 13 中引入的 UIWindowScene 架构的副作用。或者它可能旨在使所有 iPhone 型号的行为方式相同(带或不带边框)。
推荐阅读
- python - 在 r 或 python 中查找多维数据集之间的相似性
- php - 基于 page_title 的起始字母的 div 内的无序列表中的多个列表项的 Foreach
- c++ - 为使用 conda 安装的仅标头库设置包含路径
- android - 使用 setAlpha 设置布局背景的 alpha 不起作用
- javascript - 即使重新打开应用程序,如何在下拉列表中保留上次选择的值
- windows - Windows BATCH filter with regex
- sql-server - mssql和nodejs,以值作为对象的插入语句
- django - Django 模型测试中未解决的错误
- python - 在 Python 3 中从字符串定义方法并引用为方法
- java - Solace - 当 solace jar 升级到 v10.1 时创建 InitialContext 失败