我有一个表格视图设置,还有一个工作搜索栏 - 没有XIB或STORYBOARD参与。在搜索栏上方,我有标签显示表格视图中的条目数量以及其他一些内容。那么现在我希望搜索栏+标签隐藏,直到用户向上滚动(如在音乐应用程序中)。这是我的搜索栏的设置
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];
这是我的标签:
tableCountDisplay = [[UILabel alloc]initWithFrame:CGRectMake(5, -44, 155, 44)];
标签已隐藏,直到用户滚动。问题是 - 我无法隐藏搜索栏。如果我做
[self.tableView setContentOffset:CGPointMake(0,88) animated:YES];
然后隐藏搜索栏和标签,但也是我的表格视图的第一个元素......
如果我做44或0(并不重要)
[self.tableView setContentOffset:CGPointMake(0,44 or 0) animated:YES];
标签被隐藏,其他一切都可见。技术上,0,44应该是正确的偏移量,但由于某种原因它不起作用。 我真的很高兴得到一些帮助!
答案 0 :(得分:8)
其中一个解决方案是将您的searchBar
和label
作为子视图添加到UIView
。然后将此UIView
设置为TableHeaderView
。我的工作样本如下:
滚动前的屏幕:
滚动后的屏幕:
答案 1 :(得分:0)
没有办法维护tableView固定的标头
1-可以使用UIViewController而不是UITableViewController。
2-为标题添加子视图(UIView)(在此视图中添加searchBarView)。
3-并为tableview添加另一个子视图。
答案 2 :(得分:0)
怎么样?
tableView.contentOffset = CGPoint(x: 0, y: (tableView.tableHeaderView?.frame.size.height ?? 0))
on wiewWillAppear:
;)