Вопрос

У меня есть проблема с созданием модального представления поиска, который эмулирует поведение приложения погоды. В частности, есть две анимации, которые беспокоят меня и вводят ненужные задержки в 0,2 с:

  • Когда модальный вид становится видимым, я уделяю внимание UISearchDisplayController.searchBar с помощью переворота viewDidAppear. Анкет Тем не менее, клавиатура не видно, когда модальный вид включен, но ему нужно еще 0,2, чтобы скользить после завершения анимации перехода модального представления. Перемещая звонок к другому обратному обращению, как viewWillAppear или же viewDidLoad Не очень хорошо, клавиатура не появится в первую очередь.

  • Когда пользователь касается отмены, происходит еще одна анимация, прежде чем делегат searchDisplayControllerDidEndSearch Метод вызывается, расширяя поля текста поиска и «плавив» кнопку. Опять же, эта анимация не поддержана, так как модальный вид должен переходить, когда кнопка касается.

  • Кроме того, когда я увольняю и повторно представляю один и тот же вид, не только клавиатура скользит после перехода, но и кнопка отмены делает то же самое (к счастью, одновременно).

Я знаю об аналогичной проблеме, описанной здесь: Проблемы с анимацией клавиш при вызове становятся FirStresponder в модальном контроллере представленияАнкет Тем не менее, кажется, что поведение строки поиска слабатно отличается от поведения текстового поля. Я не мог воспроизвести шаги, описанные этим автором, чтобы сделать клавиатуру видимой, вызывая becomeFirstResponder в viewDidLoad.

С уважением, Крис

Это было полезно?

Решение

Думаю, я нашел твой ответ. Когда вы добавляете панель поиска с помощью интерфейсного строителя, вы можете сделать это двумя способами: «строка поиска» и «строка поиска и поиск дисплеев».

Я использовал второй, и у меня была та же самая проблема, которую вы описали. Я мог только вызвать клавиатуру (используя FirStresponder) на "ViewDidapear". Но если вы сделаете это, добавив только строку поиска, это работает. Теперь я могу позвонить FirStresponder на «ViewDidload», и клавиатура появляется вместе с самим представлением.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top