[Apple Watch アプリ開発] #3 日時ラベル

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

WKInterfaceDate

概要

WKInterfaceDateは、現在の日付や時刻を表示するために利用するカスタムラベルです。
これらの情報はプログラムで制御しなくても自動で更新されます。

特性

日時ラベルは以下の特性を持ちます。

  • 日付や時刻、またはその両方を表示する
  • 様々なフォーマット、カレンダー、タイムゾーンを使って日時の表示を構成することができる
  • プログラムで更新する必要はない

また、Apple は日時ラベルを使用するときは以下のことを推奨しています。

  • 現在の日付や日時を表示したいときはdateオブジェクトを使用してください

作ってみる

wk3-1

wk3-2

実行画面

wk3-3

1分後

wk3-4

フォーマット

日付や時刻のフォーマットはカスタマイズすることができます。

wk3-5

また、FormatStandardの場合は、日付と時刻のフォーマットを5 種類の中から選ぶことができます。

wk3-6

wk3-7

それでは日付と時刻のフォーマットについて全種類の表示を見てみましょう。
Noneは非表示なので省略します。

Short

日付

wk3-8

時刻

wk3-9

Medium

日付

wk3-10

時刻

wk3-11

Long

日付

wk3-12

時刻

wk3-13

Full

日付

wk3-14

時刻

wk3-15

Full & Full

wk3-16

ShortMediumで日付が変わっていませんが、これは日本語環境だとこうなるようです。
英語環境だと以下のように違いがわかります。

英語環境 日付 Short

wk3-17

英語環境 日付 Medium

wk3-18

また、ラベルの行数はデフォルトで1になっているので、複数行に対応させるために Storyboard で Label のLines0にしましょう。

wk3-19

WKInterfaceDate の定義

WKInterfaceDate は以下のように定義されています。

@availability(iOS, introduced=8.2)
class WKInterfaceDate : WKInterfaceObject {

    func setTextColor(color: UIColor?)

    func setTimeZone(timeZone: NSTimeZone?)
    func setCalendar(calendar: NSCalendar?)
}

これまた少ないですね。
設定できる項目はテキストカラー、タイムゾーン、カレンダーの 3 つだけです。
その他の設定は Storyboard から行いましょう。

まとめ

WKInterfaceDate は現在の日付や時刻を表示するために利用します。
自動で日時を更新してくれるため、それらの処理をプログラムで書く必要はありません。

日付のフォーマットはカスタマイズ可能です。
アプリに合ったフォーマットを考えましょう。

プログラムでできることは以下の通りです。

  • テキストカラーの設定
  • タイムゾーンの設定
  • カレンダーの設定

リンク