iOS 3.2 и более поздние версии
UIResponder имеет свойство inputView
, которое можно использовать с UITextField и UITextView для замены стандартной клавиатуры на любое удобное для вас представление, включая UIDatePicker. (См. Также: inputAccessoryView
, который можно использовать для размещения панели инструментов над клавиатурой.)
Подробнее см. Пользовательские представления для ввода данных в документации iOS.
iOS 3.0 и более ранние версии
Если вы хотите, чтобы панель выбора появлялась, как клавиатура, вы должны сделать это самостоятельно. Это не слишком волосато.
Чтобы сделать вид сборщика скользящим в нижней части экрана:
pickerView.frame = <offscreen, just below the main view>
[UIView beginAnimations:@"PickerUp" context:nil];
pickerView.frame = <onscreen, at the bottom of the view>;
[UIView commitAnimations];
Чтобы сделать вид сборщика скользящим, когда закончите:
[UIView beginAnimations:@"PickerDown" context:nil];
pickerView.frame = <offscreen, just below the main view>
[UIView commitAnimations];
Клавиатура обрабатывается автоматически, потому что она управляется UITextView / UITextField; так как вам нужен пользовательский вид ввода, вы должны написать код, чтобы управлять им самостоятельно.
Если вы идете по этому пути, вы должны прочитать документацию о becomeFirstResponder
и всей цепочке UIResponder, чтобы ваш пользовательский элемент управления хорошо работал с системой и другими текстовыми полями.
Если вы хотите панель инструментов над средством выбора, просто создайте универсальный UIView, содержащий панель инструментов, средство выбора и все остальное, что вы хотите открыть снизу. Затем анимируйте это представление контейнера, а не только сборщик.