У меня есть табличный вид с верхней панелью поиска. Мое требование состоит в том, чтобы не показывать панель поиска, когда кто-то открывает страницу, но когда кто-то скользит по таблице, тогда панель поиска должна быть видимой.
Отображение поисковой панели только тогда, когда пользователь вытаскивает таблицу
Ответ 1
В вашем контроллере viewDidAppear:
установите свойство contentOffset (в UIScrollView) вашего вида таблицы, чтобы скрыть панель поиска.
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.tableView.contentOffset = CGPointMake(0, SEARCH_BAR_HEIGHT);
}
Ответ 2
Связанный с ответ murat, здесь более портативная и правильная версия, которая покончит с анимированным смещением при загрузке вида (предполагается, что в строке поиска есть свойство outlet, называемое searchBar
):
- (void)viewWillAppear:(BOOL)animated
{
self.tableView.contentOffset = CGPointMake(0, self.searchBar.frame.size.height);
}
UPDATE:
Чтобы выполнить поиск по значку поиска в индексе раздела, необходимо выполнить следующий метод, который восстанавливает смещение содержимого:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title
atIndex:(NSInteger)index
{
index--;
if (index < 0) {
[tableView
setContentOffset:CGPointMake(0.0, -tableView.contentInset.top)];
return NSNotFound;
}
return index;
}