iPhone UIDate всплывающее окно? - PullRequest
2 голосов
/ 23 мая 2011

На устройстве Android, если бы я хотел, чтобы всплывающее окно выбора даты или номера отображало всплывающее окно.Я не нашел способ сделать это на iPhone?Каков рекомендуемый способ обработки этих объектов?

РЕДАКТИРОВАТЬ: я добавил UIDatePicker, используя Interface Builder , но он статический и не всплывает.Какой код я бы использовал, чтобы сделать это всплывающее окно?

Ответы [ 3 ]

4 голосов
/ 23 мая 2011

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, содержащий панель инструментов, средство выбора и все остальное, что вы хотите открыть снизу. Затем анимируйте это представление контейнера, а не только сборщик.

1 голос
/ 23 мая 2011

Вы можете установить их как inputView с на textField с и textView с.Вид ввода появится снизу и представит себя для выбора.Вы можете посмотреть пример реализации, который я предоставил для вопроса в аналогичных строках здесь .Вы также можете включить их на пользовательских подклассах UIResponder.

1 голос
/ 23 мая 2011

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

Для средства выбора номера у вас есть несколько вариантов, вы можете собрать число в UIAlertView , содержащем UITextField ( этот вопрос описываеткак это будет работать) или вы можете использовать UIPicker для выбора номера (аналогично UIDatePicker UI).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...