Я создаю приложение для iOS 7. Я пытаюсь установить UISearchDisplayController в панель навигации.
У меня он настроен так: В раскадровке я добавил "Панель поиска и поисковый контроллер дисплея" в представление контроллера просмотра и установил ее в (0,0) относительно верхнего руководства по макету. Я установил ограничения для вывода налево, сверху и справа. (Я играл с ограничениями, я удалил их полностью, это не имеет значения) Кроме того, у меня есть мой вид в таблице. Когда я добавил панель поиска в представление в раскадровке, она автоматически настраивает выходные точки для делегата searchDisplayController и searchBar. В коде у меня есть self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
У меня две проблемы:
1) Без каких-либо кнопок, отображаемых для строки поиска (Interface builder → выберите панель поиска → Параметры: не выбрано), строка поиска находится посередине экрана:
Если я нажму на панель навигации, он начнет редактирование строки поиска:
также отмечают, что темное оверлейное изображение смещено от панели навигации. Мне кажется, что пространство имеет ту же высоту, что и панель навигации. Как будто это было сведено на нет. Кроме того, когда он отображает результаты поиска, верхняя часть представления содержимого сдвигается на ту же величину (больше изображений следуют), что приводит ко второй проблеме.
2) Некоторое время я общался с ним и решил проверить, есть ли кнопка отмены. Теперь у меня есть панель поиска, встроенная в навигационную панель, но наложение все еще сдвинуто вниз:
Опять же, когда появится представление таблицы результатов поиска, оно сдвигается вниз на ту же величину (обратите внимание на полосу прокрутки в правой части):
Еще более странно, я установил границу на уровне таблицы просмотра контроллера отображения, и он выглядит правильно:
Я никогда раньше не использовал UISearchDisplayController, и я не знаком с его настройкой, но функционально он отлично работает. Я прочитал некоторые другие подобные сообщения, но единственный совет - взломать его, отрегулировав фреймы и установив вручную смещения. Я бы предпочел знать, что вызывает это, это ошибка? Что-то я делаю неправильно? Если это ошибка, я могу дождаться исправления. Похоже, что такая основная вещь, что тысяча человек, должно быть, сделала без проблем, поэтому я чувствую, что я не правильно ее настраиваю. Спасибо за ваш вклад.