Swift
WatchKit
AppleWatch
watchOS

Apple Watchの画面サイズを取得する方法

Apple Watchの画面サイズenumを作成して、38mmと42mmを設定します。

enum CaseSize: Int {
    case size38mm = 38
    case size42mm = 42
}

WKInterfaceDeviceextensioncurrentCaseSizeメソッドを追加します。
(将来的におおきいサイズのWatchが発売された場合のために、38mmと42mm以外は42mmにしています。エラーにしたい場合などは、enumにnoneを追加してdefaultで.noneをretrunするといいかと)

extension WKInterfaceDevice {

    class func currentCaseSize() -> CaseSize {
        let width38mm: CGFloat = 136.0
        let width42mm: CGFloat = 156.0
        let width = WKInterfaceDevice.current().screenBounds.size.width

        switch width {
        case width38mm:
            return .size38mm
        case width42mm:
            return .size42mm
        default:
            return .size42mm
        }
    }

}

[awake(: )]で実行してみました。

    override func awake(withContext context: Any?) {
        super.awake(withContext: context)

        let caseSize = WKInterfaceDevice.currentCaseSize()
        print("\(caseSize.rawValue)")
    }

デバッグエリアに38mmと表示されました。

スクリーンショット 2018-03-02 12.39.48.png