Как я могу сделать UIPickerView похожим на UIDatePicker?

У меня есть собственный подкласс UIViewController, который действует как источник данных и делегат для UIPickerView, который я хотел бы служить двум разным целям, поскольку каждая из них достаточно проста и не требует отдельных файлов. Одна операция должна выполняться в качестве настраиваемого средства выбора, и это нормально работает. Однако для другой операции я хочу, чтобы она действовала точно так же, как UIDatePicker.

Проблема в том, что UIDatePicker является подклассом UIControl, а не UIPickerView. Есть ли какое-либо значение перечисления, которое я могу установить в методе (или другим способом), который установит UIPickerView для работы в качестве средства выбора даты? Или мне нужно сделать два совершенно разных класса и использовать их по-разному (заноза в заднице)?


person cortices    schedule 07.06.2012    source источник
comment
Что характерно для вашего сборщика, внешнего вида или поведения?   -  person jrturton    schedule 07.06.2012
comment
К сожалению, на самом деле это подкласс UIViewController. Буду редактировать. Но это источник данных и делегат UIPickerView.   -  person cortices    schedule 07.06.2012
comment
Вы хотите ИСПОЛЬЗОВАТЬ ДВА КОНТРОЛЛЕРА PICKER В ОДНОМ КЛАССЕ?   -  person KAREEM MAHAMMED    schedule 07.06.2012
comment
Успокаивать. Я хочу, чтобы один класс менял тип средства выбора в зависимости от того, как я его инициализирую. Это так плохо? Но я, вероятно, в конечном итоге сделаю ответ @jrturton.   -  person cortices    schedule 07.06.2012


Ответы (1)


Было бы намного проще иметь UIPicker и UIDatePicker и просто скрыть тот, который вам не нужен. UIDatePicker имеет всевозможные сложности для обработки международных форматов дат и календарей, которые вы не хотите изобретать заново.

person jrturton    schedule 07.06.2012
comment
Но как мне это сделать? UIPickerView - это представление, которое работает совершенно иначе, чем элемент управления. Или есть способ установить средство выбора в представлении на UIDatePicker? - person cortices; 07.06.2012
comment
Не совсем. UIControl - это подкласс UIView, поэтому вы можете скрывать или перемещать их по своему усмотрению. - person jrturton; 07.06.2012
comment
Ой. Работают ли методы делегата, источника данных и т. Д. Для средства выбора даты так же, как и для представления средства выбора? - person cortices; 07.06.2012
comment
Нет. Вы не реализуете их для выбора даты - поэтому это не подкласс UIPicker. Это объект управления, который имеет представление средства выбора в качестве подпредставления и внутренне реализует методы источника данных. У него есть события valueChanged, и вы можете читать и записывать значение даты. - person jrturton; 07.06.2012
comment
Конечно. Der. Потому что он управляет своим собственным источником данных и прочим, чтобы делать даты. - person cortices; 07.06.2012
comment
Это помогло мне установить UIDatePicker в качестве представления для TextInput. - person ATOzTOA; 08.11.2014