Apple Watchの画面サイズenumを作成して、38mmと42mmを設定します。
enum CaseSize: Int {
case size38mm = 38
case size42mm = 42
}
WKInterfaceDevice
のextension
にcurrentCaseSize
メソッドを追加します。
(将来的におおきいサイズの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と表示されました。