Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Позволяет UIPickerView выбрать значение из списка путем прокрутки отдельных компонентов интерфейса, например колесика.
Средства выбора часто используются для выбора даты и времени; Apple предоставляет UIDatePicker класс для этой цели.
В статье описывается, как реализовать и использовать UIPickerView элементы управления и UIDatePicker элементы управления.
UIPickerView
Реализация средства выбора
Реализация средства выбора путем создания экземпляра нового UIPickerView:
UIPickerView pickerView = new UIPickerView(
new CGRect(
UIScreen.MainScreen.Bounds.X - UIScreen.MainScreen.Bounds.Width,
UIScreen.MainScreen.Bounds.Height - 230,
UIScreen.MainScreen.Bounds.Width,
180
)
);
Средства выбора и раскадровки
Чтобы создать средство выбора в конструкторе iOS, перетащите представление средства выбора из панели элементов в область конструктора.

Работа с элементом управления выбора
Средство выбора использует модель для взаимодействия с данными:
public override void ViewDidLoad()
{
base.ViewDidLoad();
var pickerModel = new PeopleModel(personLabel);
personPicker.Model = pickerModel;
}
Базовый UIPickerViewModel класс реализует два интерфейса: IUIPickerDataSource и IUIPickerViewDelegate, которые объявляют различные методы, которые указывают данные средства выбора и как он обрабатывает взаимодействие:
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;
}
Средство выбора может иметь несколько столбцов или компонентов. Компоненты секционирует средство выбора в несколько разделов, что позволяет упростить и более конкретный выбор данных:

Чтобы указать количество компонентов в средстве выбора, используйте Метод GetComponentCount.
Настройка внешнего вида средства выбора
Чтобы настроить внешний вид средства выбора, используйте UIPickerView.UIPickerViewAppearance класс или переопределение GetView GetRowHeight методов в объекте UIPickerViewModel.
UIDatePicker
Реализация средства выбора дат
Реализация средства выбора дат путем создания экземпляра :UIDatePicker
UIPickerView pickerView = new UIPickerView(
new CGRect(
UIScreen.MainScreen.Bounds.X - UIScreen.MainScreen.Bounds.Width,
UIScreen.MainScreen.Bounds.Height - 230,
UIScreen.MainScreen.Bounds.Width,
180
)
);
Средства выбора дат и раскадровки
Чтобы создать средство выбора дат в конструкторе iOS, перетащите средство выбора дат из панели элементов в область конструктора.

Свойства средства выбора даты
Минимальная и максимальная дата
MinimumDate и MaximumDate ограничить диапазон дат, доступных в средстве выбора дат. Например, следующий код ограничивает средство выбора дат до 6 лет, ведущих к настоящему моменту:
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;
Совет
Можно явно привести к DateTime NSDate:
DatePicker.MinimumDate = (NSDate)DateTime.Today.AddDays (-7);
DatePicker.MaximumDate = (NSDate)DateTime.Today.AddDays (7);
Интервал минуты
Свойство MinuteInterval задает интервал, с которым средство выбора будет отображать минуты:
datePickerView.MinuteInterval = 10;
Режим
Средства выбора дат поддерживают четыре режима, описанные ниже.
UIDatePickerMode.Time
UIDatePickerMode.Time отображает время с селектором часов и минут и необязательным обозначением AM или PM:
datePickerView.Mode = UIDatePickerMode.Time;

UIDatePickerMode.Date
UIDatePickerMode.Date отображает дату с селектором месяца, дня и года:
datePickerView.Mode = UIDatePickerMode.Date;

Порядок селекторов зависит от языкового стандарта средства выбора даты, который по умолчанию использует языковой стандарт системы. На рисунке выше показан макет селекторов в языковом en_US стандарте, но следующие изменения порядка на Day | Месяц | Год:
datePickerView.Locale = NSLocale.FromLocaleIdentifier("en_GB");

UIDatePickerMode.DateAndTime
UIDatePickerMode.DateAndTime отображает сокращенное представление даты, время в часах и минутах, а также необязательное обозначение AM или PM (в зависимости от того, используется ли 12 или 24 часов):
datePickerView.Mode = UIDatePickerMode.DateAndTime;

Как и в UIDatePickerMode.Dateслучае, порядок селекторов и использование часов в 12 или 24 часах зависит от языкового стандарта средства выбора дат.
Совет
Date Используйте свойство для записи значения средства выбора даты в режиме UIDatePickerMode.TimeилиUIDatePickerMode.DateUIDatePickerMode.DateAndTime. Это значение хранится в виде NSDate.
UIDatePickerMode.CountDownTimer
UIDatePickerMode.CountDownTimer отображает значения часов и минут:
datePickerView.Mode = UIDatePickerMode.CountDownTimer;

Свойство CountDownDuration фиксирует значение средства выбора даты в UIDatePickerMode.CountDownTimer режиме. Например, чтобы добавить значение отсчета до текущей даты:
var currentTime = NSDate.Now;
var countDownTimerTime = datePickerView.CountDownDuration;
var finishCountdown = currentTime.AddSeconds(countDownTimerTime);
dateLabel.Text = "Alarm set for:" + coundownTimeformat.ToString(finishCountdown);
NSDateFormatter
Чтобы отформатировать NSDateобъект , используйте .NSDateFormatter
Чтобы использовать NSDateFormatterметод , вызовите его ToString метод. Например:
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
Свойство DateFormat (строка) позволяет NSDateFormatter настроить спецификацию формата дат:
NSDateFormatter dateFormat = new NSDateFormatter();
dateFormat.DateFormat = "yyyy-MM-dd";
TimeStyle
Свойство TimeStyle (а NSDateFormatterStyle ) NSDateFormatter определяет форматирование времени на основе предопределенных стилей:
NSDateFormatter timeFormat = new NSDateFormatter();
timeFormat.TimeStyle = NSDateFormatterStyle.Short;
Различные NSDateFormatterStyle значения отображаются следующим образом:
NSDateFormatterStyle.Full: 7:46:00 Восточное дневное времяNSDateFormatterStyle.Long: 7:47:00 PM EDTNSDateFormatterStyle.Medium: 7:47:00 ВЕЧЕРАNSDateFormatterSytle.Short: 7:47 ВЕЧЕРА
DateStyle
Свойство DateStyle (a NSDateFormatterStyle) NSDateFormatter указывает форматирование дат на основе предопределенных стилей:
NSDateFormatter dateTimeformat = new NSDateFormatter();
dateTimeformat.DateStyle = NSDateFormatterStyle.Long;
Различные NSDateFormatterStyle значения отображают даты следующим образом:
NSDateFormatterStyle.Full: среда, 2 августа 2017 г. в 7:48 вечераNSDateFormatterStyle.Long: 2 августа 2017 г. в 7:49 вечераNSDateFormatterStyle.Medium: 2 августа 2017 г., 7:49 вечераNSDateFormatterStyle.Short: 8.2.17, 7:50
Примечание.
DateFormat и DateStyle/TimeStyle укажите различные способы указания форматирования даты и времени. Последние заданные свойства определяют выходные данные модуля форматирования даты.