gpt4 book ai didi

ios - 当尝试获取应用程序方向时,“statusBarOrientation”在 iOS 13.0 中已被弃用

转载 作者:行者123 更新时间:2023-12-01 18:17:25 25 4
gpt4 key购买 nike

简单地说,我依靠以下代码来提供应用程序的方向。在应用程序中使用它有几个原因:

  • 根据 UX 规范,stackview 的布局是根据 iPad 的方向设置的(横向时为水平,纵向时为垂直)
  • 在上一项的基础上,stackview 放置在屏幕左侧(纵向)或顶部(横向)
  • 自定义轮换逻辑会根据状态做出不同的响应。 tl;dr 是,在 iPad 上,应用程序在方向之间呈现出显着差异

我只是负责在这种情况下进行维护,并且没有能力进行偏离当前(且正常运行)布局逻辑的重大更改。

到目前为止,它依赖于以下内容来捕获应用程序方向:

var isLandscape: Bool {
return UIApplication.shared.statusBarOrientation.isLandscape
}

但是,在 Xcode 11 GM 版本中,我收到以下弃用警告:

'statusBarOrientation' was deprecated in iOS 13.0: Use the interfaceOrientation property of the window scene instead.

如何通过状态栏获取应用程序的方向?

最佳答案

Swift 5iOS 13,但兼容旧版 iOS:

extension UIWindow {
static var isLandscape: Bool {
if #available(iOS 13.0, *) {
return UIApplication.shared.windows
.first?
.windowScene?
.interfaceOrientation
.isLandscape ?? false
} else {
return UIApplication.shared.statusBarOrientation.isLandscape
}
}
}

用法:

if (UIWindow.isLandscape) {
print("Landscape")
} else {
print("Portrait")
}

关于ios - 当尝试获取应用程序方向时,“statusBarOrientation”在 iOS 13.0 中已被弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com