使用UISearchController将过滤添加到UITableView。使用Xcode 7,部分标题与iOS 8上的搜索栏重叠。这在iOS 9中看起来很好。我可以采用哪种解决方法使iOS 8看起来像iOS 9版本?
override func viewDidLoad() {
super.viewDidLoad()
self.searchController.searchResultsUpdater = self
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = false
self.tableView.tableHeaderView = searchController.searchBar
self.definesPresentationContext = true
self.searchController.searchBar.sizeToFit()
tableView.sectionIndexBackgroundColor = UIColor.clearColor()
}
答案 0 :(得分:1)
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 44)];
[self.tableView.tableHeaderView addSubview:self.searchController.searchBar];
创建一个新的UIView并添加searchBar作为子视图,然后将tableView的标题视图设置为新创建的视图将解决问题。
答案 1 :(得分:-1)
将更改改为:
self.searchController.searchResultsUpdater = self
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.definesPresentationContext = true
self.searchController.searchBar.sizeToFit()
self.navigationItem.titleView = self.searchController.searchBar;
tableView.sectionIndexBackgroundColor = UIColor.clearColor()
所以在searchController上设置definePresentationContext,而不是视图控制器。