使用故事板,我做了UITableViewController
:
好的,当我开始搜索时,在searchBarShouldBeginEditing:
我会隐藏导航栏并显示范围栏:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
[self.mySearchBar setShowsScopeBar:YES];
[self.mySearchBar sizeToFit];
[self.mySearchBar setShowsCancelButton:YES animated:YES];
[self.navigationController setNavigationBarHidden:YES animated:YES];
return YES;
}
但是表的第一个单元格隐藏在范围栏后面。我想我需要增加表头,但我是怎么做到的?或者有其他方法来解决它?
答案 0 :(得分:1)
UITableViewDelegate有一个执行此操作的方法:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
//return height as a float here
}
在你的委托中以适当的高度实现它。
或者,如果条形图隐藏了单元格的顶部,您可能需要通过更改其框架来向下移动屏幕上的表格视图:
CGRect newFrame = tableView.frame;
newFrame.origin.y += 45; //or whatever number of pixels you want to move it down by
tableView.frame = newFrame;
答案 1 :(得分:1)
回答我自己的问题,再看一点,我找到了一个似乎最正确的解决方案,即使用UISearchDisplayController
。这是我遵循的教程:https://developer.apple.com/library/ios/#samplecode/TableSearch/Introduction/Intro.html
使用这种方式,他隐藏了导航栏并显示了范围,无需额外的代码,也没有隐藏第一个单元格的问题。