Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
, UIPickerView tekerlek benzeri bir arabirimin bileşenlerini tek tek kaydırarak listeden değer seçmeyi mümkün kılar.
Seçiciler sık sık bir tarih ve saat seçmek için kullanılır; Apple, UIDatePicker sınıfını seçin.
Makalede ve denetimlerinin nasıl uygulanıp kullanılacağı UIPickerView UIDatePicker açıklanmaktadır.
UIPickerView
Seçici uygulama
Yeni UIPickerViewbir örneği oluşturarak seçici uygulama:
UIPickerView pickerView = new UIPickerView(
new CGRect(
UIScreen.MainScreen.Bounds.X - UIScreen.MainScreen.Bounds.Width,
UIScreen.MainScreen.Bounds.Height - 230,
UIScreen.MainScreen.Bounds.Width,
180
)
);
Seçiciler ve görsel taslaklar
iOS Tasarım Aracı seçici oluşturmak için Araç Kutusu'ndan bir Seçici Görünümü'nü tasarım yüzeyine sürükleyin.

Seçici denetimiyle çalışma
Seçici, verilerle etkileşime geçmek için bir model kullanır:
public override void ViewDidLoad()
{
base.ViewDidLoad();
var pickerModel = new PeopleModel(personLabel);
personPicker.Model = pickerModel;
}
UIPickerViewModel Temel sınıf iki arabirim uygular:IUIPickerDataSource ve IUIPickerViewDelegate, bir seçicinin verilerini ve etkileşimi nasıl işlediğini belirten çeşitli yöntemler bildirir:
public class PeopleModel : UIPickerViewModel
{
public string[] names = new string[] {
"Amy Burns",
"Kevin Mullins",
"Craig Dunn",
"Joel Martinez",
"Charles Petzold",
"David Britch",
"Mark McLemore",
"Tom Opegenorth",
"Joseph Hill",
"Miguel De Icaza"
};
private UILabel personLabel;
public PeopleModel(UILabel personLabel)
{
this.personLabel = personLabel;
}
public override nint GetComponentCount(UIPickerView pickerView)
{
return 2;
}
public override nint GetRowsInComponent(UIPickerView pickerView, nint component)
{
return names.Length;
}
public override string GetTitle(UIPickerView pickerView, nint row, nint component)
{
if (component == 0)
return names[row];
else
return row.ToString();
}
public override void Selected(UIPickerView pickerView, nint row, nint component)
{
personLabel.Text = $"This person is: {names[pickerView.SelectedRowInComponent(0)]},\n they are number {pickerView.SelectedRowInComponent(1)}";
}
public override nfloat GetComponentWidth(UIPickerView picker, nint component)
{
if (component == 0)
return 240f;
else
return 40f;
}
public override nfloat GetRowHeight(UIPickerView picker, nint component)
{
return 40f;
}
Seçicinin birden çok sütunu veya bileşeni olabilir. Bileşenler bir seçiciyi birden çok bölüme bölerek daha kolay ve daha belirli veri seçimine olanak sağlar:

Seçicideki bileşen sayısını belirtmek için GetComponentCount Yöntem.
Seçicinin görünümünü özelleştirme
Seçicinin görünümünü özelleştirmek için UIPickerView.UIPickerViewAppearancesınıfını GetView seçin veya içindeki UIPickerViewModelve GetRowHeight yöntemlerini geçersiz kılın.
UIDatePicker
Tarih seçici uygulama
Örneği oluşturarak UIDatePickerbir tarih seçici uygulama:
UIPickerView pickerView = new UIPickerView(
new CGRect(
UIScreen.MainScreen.Bounds.X - UIScreen.MainScreen.Bounds.Width,
UIScreen.MainScreen.Bounds.Height - 230,
UIScreen.MainScreen.Bounds.Width,
180
)
);
Tarih seçiciler ve görsel taslaklar
iOS Tasarım Aracı tarih seçici oluşturmak için Araç Kutusu'ndan bir Tarih Seçici'yi tasarım yüzeyine sürükleyin.

Tarih seçici özellikleri
En düşük ve en yüksek tarih
MinimumDate ve MaximumDate tarih seçicide kullanılabilir tarih aralığını sınırlayın. Örneğin, aşağıdaki kod bir tarih seçiciyi o ana kadar uzanan altmış yılla kısıtlar:
var calendar = new NSCalendar(NSCalendarType.Gregorian);
var currentDate = NSDate.Now;
var components = new NSDateComponents();
components.Year = -60;
NSDate minDate = calendar.DateByAddingComponents(components, currentDate, NSCalendarOptions.None);
datePickerView.MinimumDate = minDate;
datePickerView.MaximumDate = currentDate;
İpucu
açıkça bir DateTime 'a atanabilir NSDate:
DatePicker.MinimumDate = (NSDate)DateTime.Today.AddDays (-7);
DatePicker.MaximumDate = (NSDate)DateTime.Today.AddDays (7);
Dakika aralığı
özelliği, MinuteInterval seçicinin dakikaları görüntülediği aralığı ayarlar:
datePickerView.MinuteInterval = 10;
Mod
Tarih seçiciler aşağıda açıklanan dört modu destekler:
UIDatePickerMode.Time
UIDatePickerMode.Time saati bir saat ve dakika seçici ve isteğe bağlı AM veya PM gösterimiyle görüntüler:
datePickerView.Mode = UIDatePickerMode.Time;

UIDatePickerMode.Date
UIDatePickerMode.Date ay, gün ve yıl seçicisi olan tarihi görüntüler:
datePickerView.Mode = UIDatePickerMode.Date;

Seçicilerin sırası, varsayılan olarak sistem yerel ayarını kullanan tarih seçicinin yerel ayarına bağlıdır. Yukarıdaki görüntüde yerel ayardaki en_US seçicilerin düzeni gösterilir, ancak aşağıdakiler sırayı Gün | olarak değiştirir Ay | Yıl:
datePickerView.Locale = NSLocale.FromLocaleIdentifier("en_GB");

UIDatePickerMode.DateAndTime
UIDatePickerMode.DateAndTime tarihin kısaltılmış bir görünümünü, saat ve dakika cinsinden saati ve isteğe bağlı AM veya PM gösterimini görüntüler (12 veya 24 saatlik saatin kullanılıp kullanılmadığına bağlı olarak):
datePickerView.Mode = UIDatePickerMode.DateAndTime;

gibi UIDatePickerMode.Date, seçicilerin sırası ve 12 veya 24 saatlik bir saatin kullanımı, tarih seçicinin yerel ayarına bağlıdır.
İpucu
Date Bir tarih seçicinin değerini , UIDatePickerMode.Dateveya UIDatePickerMode.DateAndTimemodunda UIDatePickerMode.Timeyakalamak için özelliğini kullanın. Bu değer olarak NSDatedepolanır.
UIDatePickerMode.CountDownTimer
UIDatePickerMode.CountDownTimer saat ve dakika değerlerini görüntüler:
datePickerView.Mode = UIDatePickerMode.CountDownTimer;

özelliği, CountDownDuration bir tarih seçicinin değerini modda UIDatePickerMode.CountDownTimer yakalar. Örneğin, geçerli tarihe geri sayım değerini eklemek için:
var currentTime = NSDate.Now;
var countDownTimerTime = datePickerView.CountDownDuration;
var finishCountdown = currentTime.AddSeconds(countDownTimerTime);
dateLabel.Text = "Alarm set for:" + coundownTimeformat.ToString(finishCountdown);
NSDateFormatter
bir NSDatebiçimlendirmek için kullanın NSDateFormatter.
kullanmak NSDateFormatteriçin yöntemini çağır.ToString Örneğin:
var date = NSDate.Now;
var formatter = new NSDateFormatter();
formatter.DateStyle = NSDateFormatterStyle.Full;
formatter.TimeStyle = NSDateFormatterStyle.Full;
var formattedDate = formatter.ToString(d);
// Tuesday, August 14, 2018 at 11:20:42 PM Mountain Daylight Time
DateFormat
özelliği DateFormat (dize), NSDateFormatter özelleştirilebilir bir tarih biçimi belirtimi sağlar:
NSDateFormatter dateFormat = new NSDateFormatter();
dateFormat.DateFormat = "yyyy-MM-dd";
TimeStyle
TimeStyle özelliği (bir NSDateFormatterStyle türü, NSDateFormatter önceden belirlenmiş stiller temelinde zaman biçimlendirmesini belirtir:
NSDateFormatter timeFormat = new NSDateFormatter();
timeFormat.TimeStyle = NSDateFormatterStyle.Short;
Çeşitli NSDateFormatterStyle değerler zamanları aşağıdaki gibi görüntüler:
NSDateFormatterStyle.Full: 19:46:00 Doğu Yaz SaatiNSDateFormatterStyle.Long: 19:47:00 EDTNSDateFormatterStyle.Medium: 19:47:00NSDateFormatterSytle.Short: 19:47
DateStyle
bir DateStyle öğesinin NSDateFormatter özelliği (anNSDateFormatterStyle), önceden belirlenmiş stiller temelinde tarih biçimlendirmesini belirtir:
NSDateFormatter dateTimeformat = new NSDateFormatter();
dateTimeformat.DateStyle = NSDateFormatterStyle.Long;
Çeşitli NSDateFormatterStyle değerler tarihleri aşağıdaki gibi görüntüler:
NSDateFormatterStyle.Full: 2 Ağustos 2017 Çarşamba, 19:48NSDateFormatterStyle.Long: 2 Ağustos 2017, 19:49NSDateFormatterStyle.Medium: 2 Ağustos 2017, 19:49NSDateFormatterStyle.Short: 2/8/17, 19:50
Not
DateFormat ve DateStyle/TimeStyle tarih ve saat biçimlendirmesini belirtmenin farklı yollarını sağlayın. En son ayarlanan özellikler tarih biçimlendiricinin çıkışını belirler.