UISearchBar в верхней части UITableView, который может скрываться, но оставаться рядом с UINavigationBar
Я хотел бы иметь UISearchBar в верхней части моего UITableView, который скрывает при прокрутке вниз: ответ прост, мне просто нужно добавить его в заголовок таблицы таблицы следующим образом:
UISearchBar *search = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 45)];
self.tableView.tableHeaderView = search;
[search release];
Но проблема заключается в том, что при прокрутке UISearchBar подходит к верхней части UITableView, а не к вершине UINavigationBar. Чтобы быть более ясным, я сделал экран в Mail (не хорошо) и Game Center (хорошо).
![enter image description here]()
Я хочу того же, что и в Game Center. Вы хоть представляете, как они это делают?
Ответы
Ответ 1
Вам нужно будет скрыть панель поиска самостоятельно при прокрутке таблицы. Поэтому не ставьте его как заголовок UITableView. Вы можете скрыть его, установив его высоту в ноль. Таким образом, если ваше табличное представление настроено на автоматизацию, оно будет расширяться.
Я бы экспериментировал с наличием UITableView и UISearchBar как одноранговых узлов в другом представлении. Изображение GameCenter не имеет строки поиска в качестве заголовка таблицы, а имеет их как отдельные поднастройки.
Вы также можете посмотреть на UISearchDisplayController, но я думаю, что он не совсем имеет поведение, которое вы хотите.
Изменить: Этот вопрос - это в основном ваш вопрос, и в ответах есть код.
Ответ 2
Заголовок таблицы будет перемещаться при прокрутке вниз. Это свойство tableview.
Если вы хотите разместить searchBar с панелью навигации. Почему вы не помещаете панель поиска прямо под панель навигации. Используйте панель поиска и отдельную таблицу.
Ответ 3
Правая сторона UISearchBar находится на другом UIView, она не является частью UITableView. Таким образом, вы можете добавить дочерний вид, чтобы поместить UISearchBar, а другое дочернее представление - для UITableView.
Ответ 4
Это ответит на ваш вопрос:
iPhone: скрыть панель поиска UITableView по умолчанию
та же концепция, другой контроллер.
Удачи.