UISearchDisplayController внутри всплывающего окна — плохая анимация при отмене поиска

#ios #ipad #uisearchbar #uipopovercontroller #uisearchdisplaycontroller

#iOS #iPad #панель пользовательского поиска #uipopovercontroller #uisearchdisplaycontroller

Вопрос:

Мое приложение для iPad использует всплывающее окно для выполнения некоторого поиска. Результаты поиска обрабатываются с помощью UISearchDisplayController, и у меня возникли некоторые проблемы с удалением некоторых небольших графических артефактов.

Мое всплывающее окно начинается так:

Панель пользовательского поиска внутри всплывающего окна

Когда вы нажимаете внутри строки поиска, всплывающее окно расширяется (анимировано) до: Панель пользовательского поиска и расширенный вид таблицы

Пока все хорошо … ввод в поле поиска накладывает новое табличное представление, показывающее результаты вашего поискового запроса.

Но если вы ничего не вводите в поле поиска, наложение остается полупрозрачным, как указано выше. Проблема возникает, когда вы нажимаете кнопку отмены рядом с полем поиска. В нижней части табличного представления появляется визуальный артефакт: область той же высоты, что и одна из ячеек табличного представления, сразу становится полностью чистой, в то время как остальная часть наложения анимируется до 0 alpha. Скриншот ниже максимально приближен к началу анимации, которую я мог получить:

Отключение поля поиска

Всплывающее окно также изменяется до исходного размера в моем случае, хотя артефакт остается, даже если изменение размера не выполняется.

Учитывая, что вся важная функциональность поиска обрабатывается UISearchDisplayController, я не уверен, что нужно изменить, чтобы решить эту проблему. Есть идеи?

Ответ №1:

Возможно, это ошибка, о которой стоит сообщить. На самом деле в UIPopoverController на удивление много ошибок. По крайней мере, 3, о которых я знаю отдельно от этого, ни один из которых не планируется исправлять в ближайшее время (я спросил нескольких инженеров на WWDC в этом году). Одна из моих ошибок была на самом деле связана с UISearchDisplayController во всплывающем окне, в частности, с тем, как он обрабатывает кнопки фильтра, если всплывающее окно находится в детальном представлении (оно отображает их наихудшим из возможных способов, в той же строке, что и текстовое представление, и полностью непригодно для использования).

Комментарии:

1. Да, я также столкнулся с проблемой панели видимости, и как бы мне ни хотелось включить ее в свой собственный интерфейс поиска, у меня действительно нет времени на реализацию собственной убедительной замены.

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

3. Извините, я не смог сообщить вам новости получше. Если это поможет, я частично переосмысливаю PopoverController. Вероятно, это будет не так красиво, как в Apple, но у меня уже есть панель поиска и фильтра, работающие корректно (еще не добрался до таблицы результатов и shadowbox). Если вы вернетесь в мой блог, он будет опубликован там по завершении под лицензией MIT.