Posted at

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

More than 1 year has passed since last update.

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