表视图隐藏搜索栏直到滚动

xco*_*nab 2 xcode objective-c uitableview uisearchbar ios

我有一个表格视图设置,一个工作搜索栏 - 没有XIB或故事板.在搜索栏上方,我有标签显示表格视图中的条目数量以及其他一些内容.那么现在我希望搜索栏+标签隐藏,直到用户向上滚动(如在音乐应用程序中).这是我的搜索栏的设置

self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
self.searchBar.showsCancelButton = YES;
[self.view addSubview:self.searchBar];
self.searchBar.delegate = self;
self.tableView.contentInset = UIEdgeInsetsMake(self.searchBar.frame.size.height,0, 0, 0);
[self.tableView setTableHeaderView:self.searchBar];
[self.tableView setContentOffset:CGPointMake(0,88) animated:YES];
[self.zsearchDisplayController setActive:NO animated:YES];
Run Code Online (Sandbox Code Playgroud)

这是我的标签:

 tableCountDisplay = [[UILabel alloc]initWithFrame:CGRectMake(5, -44, 155, 44)];
Run Code Online (Sandbox Code Playgroud)

标签已隐藏,直到用户滚动.问题是 - 我无法隐藏搜索栏.如果我做

 [self.tableView setContentOffset:CGPointMake(0,88) animated:YES];
Run Code Online (Sandbox Code Playgroud)

然后隐藏搜索栏和标签,但也是我的表视图的第一个元素...

如果我做44或0(无关紧要)

[self.tableView setContentOffset:CGPointMake(0,44 or 0) animated:YES];
Run Code Online (Sandbox Code Playgroud)

标签是隐藏的,其他一切都是可见的.技术上,0,44应该是正确的偏移量,但由于某种原因它不起作用.我真的很高兴能得到一些帮助!

Mic*_*ael 8

其中一个解决方案是将您searchBar和您label的子视图添加到UIView.然后将其设置UIViewTableHeaderView.我的工作样本如下所示:

workingSample

滚动前屏幕:

beforescroll

滚动后的屏幕:

afterscroll

  • 只是我当时的谦逊哲学:与有意识地输入解决方案相比,你从复制/粘贴中学到的东西更少. (2认同)