Ответ 1
Я бы выполнил это, просто анимируя представление, содержащее кнопки UIDatePicker, Done и Cancel) вверху внизу экрана. Используя CoreAnimation, это должно быть довольно легко.
У меня есть хороший чистый пользовательский интерфейс в представлении таблицы, в котором есть несколько текстовых полей для заполнения пользователем. Одно из полей - для дня рождения пользователя.
Я хотел бы иметь его так, чтобы, когда пользователь выбирает поле дня рождения, представление, содержащее UIDatePicker, будет выглядеть так же, как и различные клавиатуры при выборе текстового поля.
Можно ли это сделать? Я должен был помешать текстовому полю быть первым ответчиком (чтобы избежать появления клавиатуры), и мне нужно было бы оживить представление, скользящее вверх, если бы клавиатура не показывалась раньше.
Представление представления в качестве варианта возможно? Если да, то как мне это сделать? Из документации кажется, что модальные представления все еще занимают весь экран, я просто хочу использовать нижние 216 пикселей (высота клавиатуры и UIDatePicker).
Есть ли у кого-нибудь советы о том, как это сделать?
Я бы выполнил это, просто анимируя представление, содержащее кнопки UIDatePicker, Done и Cancel) вверху внизу экрана. Используя CoreAnimation, это должно быть довольно легко.
Старый вопрос, но правильным способом сделать это в эти дни было бы установить входной файл UITextField для создателя, который вы создали где-то. Что-то вроде этого:
UIPickerView *myPicker = [[UIPickerView alloc] init];
// set picker frame, options, etc...
// N.B. origin for the picker frame should be 0,0
[myTextField setInputView:myPicker];
Когда вы переходите к редактированию UITextField, iOS действительно отображает любой вид в textField.inputView
, который по умолчанию является клавиатурой, вы можете сделать все, что хотите, до тех пор, пока это подкласс UIView
.
Что касается анимации, посмотрите пример приложения DateCell - http://developer.apple.com/library/ios/#samplecode/DateCell/Introduction/Intro.html
И в любом случае правильный способ сделать это - установить UITextField inputView, чтобы отображать сборщик вместо клавиатуры. Это то, что он хотел сделать. Подробнее об этом здесь: Как я могу представить представление выбора так же, как на клавиатуре?
Приветствия,
Одед.
Почему вы используете текстовое поле, если вы не хотите принимать ввод с клавиатуры с клавиатуры? Вместо этого используйте подкласс UILabel (где вы переопределяете touchhesBegan/Ended: withEvent: набор методов для отображения UIDatePicker) или UIButton (где ваше действие - это метод, который сглаживает UIDatePicker).