SwiftUI以多平台形式获取屏幕大小

时间:2019-08-28 16:13:35

标签: ios swiftui

实际上,我在ContentView.swift文件中使用了

UIScreen.main.bounds.size.width 

获取宽度屏幕的尺寸。不幸的是,我无法将其用于MacOS目标,因为它需要NSScreen

NSScreen.main.bounds.size.width

是否有通用的Screen来获取屏幕尺寸?

1 个答案:

答案 0 :(得分:1)

为了解决这个问题,我要做的是创建一个带有平台条件的类。

class SGConvenience{
    #if os(watchOS)
    static var deviceWidth:CGFloat = WKInterfaceDevice.current().screenBounds.size.width
    #elseif os(iOS)
    static var deviceWidth:CGFloat = UIScreen.main.bounds.size.width
    #elseif os(macOS)
    static var deviceWidth:CGFloat = NSScreen.main.bounds.size.width
    #endif
}

然后我仅在需要时调用SGConvenience.deviceWidth