我总是习惯UIScreen.main.bounds.size在 iOS 上获取屏幕尺寸并且工作得很好。
现在(我相信在 iOS 16 中)当我尝试使用 UIScreen 的“主”实例访问屏幕尺寸时,会显示警告:
“main”在 iOS 的未来版本中将被弃用:使用通过上下文找到的 UIScreen 实例代替:即 view.window.windowScene.screen
所以我的问题是:获取屏幕尺寸的正确方法是什么?为简单起见,我们假设我们使用的是 iPhone,因此只有一个屏幕可用。谢谢
我可以通过以下实现访问didFinishLaunchingWithOptions。但是,我需要UIWindow变量。我不知道如何得到它。我正在使用 Xcode 12 测试版。iOS14,SwiftUI 生命周期。
import SwiftUI
@main
struct SSOKit_DemoApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
print("hello world!!!")
return true
}
}
Run Code Online (Sandbox Code Playgroud)