Анимация UITextInput's textInputView
UIKit компоненты ввода текста, такие как UITextView
а также UITextField
иметь собственность inputView
добавить пользовательскую клавиатуру. У меня есть два вопроса, касающихся этого.
Если клавиатура в данный момент видна, а для свойства установлено новое представление ввода, ничего не происходит. Отмена и восстановление статуса первого респондента обновляет ввод и отображает новый вид. Это лучший способ сделать это? Если так, то это может ответить на мой больший вопрос:
Можно ли анимировать переход между двумя входными представлениями?
2 ответа
Из документов UIResponder:
Объекты респондента, которым для сбора ввода от пользователя требуется настраиваемое представление, должны повторно объявить это свойство как readwrite и использовать его для управления своим настраиваемым представлением ввода. Когда получатель впоследствии становится первым респондентом, инфраструктура респондента автоматически представляет указанное представление ввода. Точно так же, когда представление отказывается от своего первого статуса респондента, инфраструктура респондента автоматически отклоняет указанное представление.
Так что, к сожалению, ответ на 1 - да, а 2 - нет.
На самом деле есть способ сделать это чисто:
UIResponder
"sreloadInputViews
, доступно с iOS 3.2!Я думаю, что вы можете оживить это с некоторой дополнительной работой:
- Создайте прозрачное фоновое окно более высокого уровня
UIWindowLevel
чем окно клавиатуры. - Добавьте туда свою пользовательскую клавиатуру и анимируйте ее рамку.
- Затем установите его в качестве ввода текста
inputView
и обновите первый респондент, как и вы.
- Создайте прозрачное фоновое окно более высокого уровня
Ваша пользовательская клавиатура изменит свое родительское представление с вашего пользовательского окна на клавиатурное, но, надеюсь, пользователь не заметит;)