Навсегда скрыть UISearchDisplayController

Я пытаюсь скрыть контроллер searchDisplay, подключенный к UITableView, в контроллере табличного представления iOS 7. Я не хочу временно прокручивать его сверху; Я хочу, чтобы он был полностью отключен.

В моем коде контроллера табличного представления (который FWIW настроен на сгруппированный стиль 1#comment32702568_21607675">из-за этого), у меня есть:

self.searchDisplayController.searchBar.hidden = YES;

Это скрывает панель поиска, но, к сожалению, приводит к появлению пустого поля в верхней части моей таблицы:

Снимок пустого пространства панели поиска

Этот пробел будет прокручиваться за пределы экрана, как панель поиска. self.searchDisplayController.searchBar.hidden = NO; вернет панель поиска, как и ожидалось.

Я попытался использовать предложения как из вопроса, так и из ответа на этот вопрос, чтобы переместить мою таблицу просмотр на 44 пикселя вверх, который работает, за исключением того, что он имеет побочный эффект, заключающийся в скрытии индикатора «потянуть для обновления» в верхней части моей таблицы.

Я также попытался установить рамку моей панели поиска так, чтобы она не имела высоты:

self.searchDisplayController.searchBar.frame = CGRectMake(0, 0, self.tableView.frame.size.width, 0);

но это также не избавляет от пустого места в верхней части моей таблицы.

Как мне скрыть панель поиска от UISearchDisplayController и на самом деле сделать так, чтобы пространство, которое она занимала, рухнуло, как если бы ее вообще не было?


person Nick    schedule 17.02.2014    source источник
comment
Вы не думали проверить, действительно ли экран поиска скрыт? Что-то вроде if(self.searchDisplayController.searchBar.hidden) { // делаем кадр = 0; } else { // создаем кадр = 44} и затем устанавливаем кадр ниже этого   -  person user2277872    schedule 18.02.2014
comment
Я установил скрытое свойство в операторе if на основе стандартного значения UserDefaults. Я попытался установить фрейм для searchBar в том же операторе if при установке скрытого свойства; У меня все еще был побочный эффект отсутствующего индикатора обновления.   -  person Nick    schedule 18.02.2014


Ответы (1)


В конце концов я справился с этим, объединив поведение приложения в обход условий для этого странного поведения. Я не уверен, что это поведение было исправлено в более поздних выпусках ОС.

person Nick    schedule 07.08.2015