UIDatePickerModeCountDownTimerで値を設定/取得する方法

UIDatePickerModeCountDownTimer-getstate.png

UIDatePickerでは様々なモードの表示形式を選ぶことができますが、時間の長さ指定をユーザーに選ばせたい場合に便利なモードが「UIDatePickerModeCountDownTimer」です。

しかし、このモードだけはちょっと値の設定・取得する方法が特殊でして、検索してみても答えがパッと見つかりませんでした。(海外サイトで見つけましたけど)

基本単位は「秒」

UIDatePickerModeCountDownTimerのモードにおいては、値の設定・取得ともに単位は「秒数」で指定します。 例えば1時間であれば3600、30分であれば1800になります。

設定方法

画面表示時(viewDidLoad)に「1時間」と設定する場合は以下のようにsetCountDownDuration関数で指定します。

_pickerはUIDatePickerインスタンスとします。

- (void)viewDidLoad
{
[super viewDidLoad];
[_picker setCountDownDuration:3600];
}

ちなみに、タイマーのインターバル(minuteIntervalプロパティ)を5分単位に設定したりすると、5×60=300で割り切れる秒数で指定しないとうまく設定できないので注意しましょうね。

取得方法

たとえば画面を閉じる、または移動する際(viewWillDisappear)に値を自作の変数に格納するには以下のようにcountDownDurationプロパティを参照します。

_secondsは自作int型の変数とします。

- (void)viewWillDisappear:(BOOL)animated {
//countDownDurationはNSTimeIntervalで返してくるので、int型に変換後、
//変数に設定
_seconds = (int)[_picker countDownDuration];
[super viewWillDisappear:animated];
}

という感じです。 参考になったでしょうか?

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

2011-09-18