我有一个表格视图,顶部有一个搜索栏。我的要求是当有人打开页面时不显示搜索栏,但当有人向下滑动表格时,搜索栏应该是可见的。
答案 0 :(得分:23)
在控制器的viewDidAppear:
方法中,设置表视图的contentOffset属性(在UIScrollView中)以隐藏搜索栏。
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.tableView.contentOffset = CGPointMake(0, SEARCH_BAR_HEIGHT);
}
答案 1 :(得分:4)
与murat's answer相关,这里有一个更加便携和正确的版本,可以消除视图加载时的动画偏移(假设搜索栏有一个名为searchBar
的出口属性):< / p>
- (void)viewWillAppear:(BOOL)animated
{
self.tableView.contentOffset = CGPointMake(0, self.searchBar.frame.size.height);
}
<强>更新强>
为了适应部分索引中搜索图标的点击,需要实现以下方法,以恢复内容偏移:
- (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;
}