Главная » iPhone » Выборщик даты и времени iPhone

0

Класс uiDatePicker является подклассом uiPickerView. Он позволяет выбирать даты, время и длительность из настраиваемого независимого интерфейса выборщика. Выборщик даты автоматически настраивает его столбцы в соответствии с указанным стилем, поэтому при создании новых экземпляров не нужно выполнять никакой работы на низком уровне. Кроме того, он может быть настроен на любой диапазон дат и с любыми начальной и конечной датами.

UiDatePicker в большой степени полагается на класс NSCalendarDate, который является частью основополагающего набора классов, используемого в Cocoa на настольных системах. Более подробную информацию об этом классе можно найти в справочной информации о Cocoa от Apple на YVeb-узле Apple Developer Connection. В используемом здесь примере мы создадим NSCalendarDate с помощью его Простейшего метода— initWithString: NSCalendarDate * myDate = [ [ NSCalendarDate alloc ] initWithString: (Г1963-11-22 12:30:00 -0500" ];

Создание выборщика даты и времени

UiDatePicker— гораздо более простой, нежели стандартный UiPickerView. Он строит собственный источник данных на основе указанного вами диапазона дат. Чтобы воспользоваться им, просто создайте объект:

UiDatePicker *datePicker = [ [ UiDatePicker alloc ] initWithFrame: CGRectMake(0, 280, 320, 200)];

По умолчанию выборщик представляет текущую дату и время и позволяет пользователю выбирать любой месяц и время. Дальнейшие настройки операций выборщика рассмотрены в следующих подразделах.

Режим DatePicker

Выборщик дат поддерживает четыре различных режима выбора. Режим задается с помощью метода setDatePickerMode: [ datePicker setDatePickerMode: 2 ];

Поддерживаются режимы, перечисленные в табл. 7.3.

Таблица 7.3

Параметр

Описание

0

Выбор часа, минуты и A.M. или P.M.

1

Выбор месяца, дня и года

2

Выбор недели, месяца, дня, времени и A.M. или P.M.

3

Выбор обычной временной длительности; количество часов и количество минут

Выделение "Today"

Чтобы выделить (подсветить) текущий день в выборщике, воспользуйтесь методом setHighlightsToday. Это приведет к тому, что для текущего дня будет отображено и подсвечено синим цветом слово "Today":

[ datePicker setHighlightsToday: YES ];

Временные интервалы

Минутный циферблат может быть настроен на отображение минут в одноминутных или пятиминутных интервалах, по умолчанию— одноминутных. Чтобы выбрать пятиминутные интервалы, используется метод

setStaggerTimelntervals:

[ datePicker setStaggerTimelntervals: YES ];

Диапазоны дат

Диапазон разрешенных дат можно задать с помощью методов setMinimumDate и setMaximumDate. Если пользователь попытается прокру-

тить до какой-либо даты, лежащей вне этого интервала, то циферблат прокрутится обратно до ближайшей корректной даты. Оба метода принимаю! объект NSCalendarDate:

NSCalendarDate *minDate = [ [ NSCalendarDate alloc ]

initWithString: @"1773-12-16 12:00:00 -0500" ]; NSCalendarDate *maxDate = [ [ NSCalendarDate alloc ] initWithString: @"1776-07-04 12:00:00 -0500" ];

f datePicker setMinimumDate: minDate ]; [ datePicker setMaximumDate: maxDate ];

Если не заданы один или оба из этих методов, то по умолчанию пользователю разрешается выбирать любую дату в прошлом или будущем.

Чтобы задать дату, которую вы хотите отображать по умолчанию, воспользуйтесь методом setDate: [ datePicker setDate: maxDate ];

Отображение выборщика даты

После создания выборщика его можно подключить к объекту вида точно также, как и UlPickerView: [ mainView addSubview: datePicker ];

По умолчанию высота выборщика составляет 200 пикселов, независимо от передаваемого в него размера фрейма. Вам необходимо убедиться в том, что для его размещения вы выделили достаточное пространство на экране.

Считывание даты

Дата, как правило, считывается из выборщика даты, когда пользователь переходит к другому виду, например, при покидании таблицы предпочтений. Хотя этот класс можно наследовать тем же способом, что и uiPickerView (чтобы подменить его события mouseDown), однако большинство приложений будут считывать дату после того, как пользователь нажмет кнопку перехода назад или какую-либо другую кнопку навигации.

Класс UIDatePicker ИЗ своего метода даты возвращает объект NSCalendarDate: NSCalendarDate *selectedDate = [ datePicker date ];

Источник: Здзиарски Дж. iPhone. Разработка приложений с открытым кодом: Пер„с англ. — 2-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2009. — 368 е.: ил.

По теме:

  • Комментарии