【XamarinによるiOS超入門 】 日付ピッカー ( UIDatePicker )
【 Xamarin 記事一覧 】 【XamarinによるiOS超入門 】
1 コントロールの配置
日付ピッカー(UIDatePicker)は、日付、時間、またはその両方を選択するコントロールです。
このコントロールを配置する基本的なコードは次のとおりです。
動作モードに日付選択を指定しています。また、表示位置は、View.Boundsで画面のサイズを取得し、そこから画面中央の領域を計算しています。
※コントロール内の文字等の大きさは最適化されており変更できません。表示モードによっては、画面横幅いっぱいでないと表示できません。
public override void ViewDidLoad() { base.ViewDidLoad(); //日付ピッカーのサイズ const int width = 250; const int height = 250; //日付ピッカーの生成 var picker = new UIDatePicker(); //動作モード(日付選択) picker.Mode = UIDatePickerMode.Date; //画面の中央に配置 picker.Frame = new CGRect((View.Bounds.Width - width)/2, (View.Bounds.Height - height)/2, width, height); //ビューに追加 View.AddSubview(picker); }
2 動作モード
動作モードは、下記の4種類から選択可能です。
UIDatePickerMode.Date //日付 UIDatePickerMode.Time //時間 UIDatePickerMode.DateAndTime //日付および時間 UIDatePickerMode.CountDownTimer //カウントダウンタイマー
ストーリーボードを使用している場合は、下記のとおりです。
※CountDownTimerは、タイマー機能を実装しているわけではありません。あくまで時刻を設定/表示するのみです。
3 デフォルト値と選択範囲の指定
(1)デフォルト値
プロパティDate(NSDate)を設定することで、デフォルト値を設定できます。//現在時刻に設定する picker.Date = NSDate.Now; //2010.01.01に設定する //picker.Date = DateTime.SpecifyKind(DateTime.Parse("2010-01-01"), DateTimeKind.Local);
ストーリーボードを使用している場合も、プロパティ「Date」で指定できます。
Current Dateを選択した場合
Customを選択した場合
(2)選択範囲
プロパティMinimumDate(NSDate)とMaximumDate(NSDate)で選択範囲を指定できます。//2015.01.01から10日間を選択範囲とする var start = DateTime.Parse("2015-01-01"); var end = start.AddDays(9); picker.MinimumDate = DateTime.SpecifyKind(start, DateTimeKind.Local); picker.MaximumDate = DateTime.SpecifyKind(end, DateTimeKind.Local);
ストーリーボードを使用している場合も、チェックすることで有効になります。
4 インターバル
プロパティMinuteIntervalで、指定できる間隔を指定できます。(単位は分であり、秒単位では指定できません。)
picker.MinuteInterval = 10;//10分間隔で指定
ストーリーボードを使用している場合、プロパティ「Interval」で指定します。
5 ローケル
Localを設定することで、国際化対応が可能です。
picker.Locale = new NSLocale("ja_JP");//日本語表示
図は、en(English)とja_JP(Japanese)を指定した場合の違いです。
参考:About Internationalization and Localization
6 イベント
各種のイベントが取得可能ですが、通常よく使用されるのは、ValueChanged(選択値変化)でしょうか。8 参考にさせて頂いたページ
UIKit User Interface Catalog: Date Pickers
iOS 7 から始める UIKit 入門 コントロール編 #3 Date Picker | Developers.IO
iOSヒューマンインターフェイスガイドライン: コントロール部品
c# - Create NSDate Monotouch - Stack Overflow