C1Calendar コントロールは、デフォルトのヘッダーとして現在の月または年とナビゲーションボタンを表示します。また、showHeader プロパティを No に設定してデフォルトのヘッダーを非表示(削除)し、カスタムヘッダーを適用できます。
次の図は、カスタムヘッダーを含む C1Calendar を示します。
次のコード例は、C# で C1Calendar コントロールにカスタムヘッダーを適用する方法を示します。この例では、「クイックスタート」で作成したサンプルを使用します。
C# |
コードのコピー
|
---|---|
using C1.iOS.Calendar; using CoreGraphics; using Foundation; using System; using UIKit; namespace CalendariOS { public partial class ViewController : UIViewController { C1Calendar Calendar = new C1Calendar(); public ViewController(IntPtr handle) : base(handle) { } public override void ViewDidLoad() { base.ViewDidLoad(); var model = new ViewModePickerViewModel(async row => { switch (row) { case 0: await Calendar.ChangeViewModeAsync(CalendarViewMode.Month); break; case 1: await Calendar.ChangeViewModeAsync(CalendarViewMode.Year); break; case 2: await Calendar.ChangeViewModeAsync(CalendarViewMode.Decade); break; } }); ViewModePicker.Model = model; Calendar.ViewModeChanged += OnViewModeChanged; Calendar.DisplayDateChanged += OnDisplayDateChanged; UpdateHeaderLabel(); } async partial void TodayButton_TouchUpInside(UIButton sender) { await Calendar.ChangeViewModeAsync(CalendarViewMode.Month, DateTime.Today); Calendar.SelectedDate = DateTime.Today; } private void OnViewModeChanged(object sender, EventArgs e) { switch (Calendar.ViewMode) { case CalendarViewMode.Month: ViewModePicker.Select(0, 0, true); break; case CalendarViewMode.Year: ViewModePicker.Select(1, 0, true); break; case CalendarViewMode.Decade: ViewModePicker.Select(2, 0, true); break; } } private void OnDisplayDateChanged(object sender, EventArgs e) { UpdateHeaderLabel(); } private void UpdateHeaderLabel() { HeaderLabel.Text = Calendar.DisplayDate.ToString("Y"); } public class ViewModePickerViewModel : UIPickerViewModel { Action<nint> _selected; public ViewModePickerViewModel(Action<nint> selected) { _selected = selected; } public override nint GetComponentCount(UIPickerView picker) { return 1; } public override nint GetRowsInComponent(UIPickerView picker, nint component) { return 3; } public override string GetTitle(UIPickerView picker, nint row, nint component) { switch (row) { default: case 0: return NSBundle.MainBundle.LocalizedString("月ビュー", ""); case 1: return NSBundle.MainBundle.LocalizedString("年ビュー", ""); case 2: return NSBundle.MainBundle.LocalizedString("10年ビュー", ""); } } public override void Selected(UIPickerView pickerView, nint row, nint component) { _selected(row); } } } } |