Проблема с анимацией панели поиска на панели навигации, когда searchDisplayController становится активным

Когда панель поиска становится активной, она прыгает. Смотрите анимированный GIF.

Результат: http://postimg.org/image/66bdqqgvb/

В процессе поиска решения в Stackru я нашел следующую настройку:

    self.edgesForExtendedLayout = UIRectEdgeNone;

Результат: http://postimg.org/image/y5gf4bb9b/

Прыжок исчез, но теперь панель поиска больше не закрывает строку состояния.

Обновить

Придание фону цвета окна тому же цвету, что и у поля поиска, делает его хорошо выглядящим, хотя это своего рода хак.

2 ответа

У тебя должно быть

self.edgesForExtendedLayout = UIRectEdgeAll;

вместо этого, но это просто вернет вас к вашему первому состоянию. Поэтому я хотел бы посмотреть на другие действия, которые могут быть причиной этого, сослаться на любую дополнительную информацию о том, что вы выполняете при запуске / прекращении поиска. Вы выполняете дополнительные фоновые операции или анимации в основном потоке?

РЕДАКТИРОВАТЬ

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

Это похоже на ошибку в iOS 7. Настройка edgesForExtendedLayout = UIRectEdgeNone; это исправить, но тогда у вас есть панель над строкой поиска. Лучшее решение, которое я нашел, - сделать вашу панель навигации полупрозрачной. По какой-то причине анимация нарушается только тогда, когда панель навигации непрозрачна.

self.navigationController.navigationBar.translucent = YES;
Другие вопросы по тегам