iOS 8 上 UISearchBar 顶部的 header 部分。适用于 iOS 9
Section header on top of UISearchBar on iOS 8. Works on iOS 9
使用 UISearchController 向 UITableView 添加过滤。 header 部分与 iOS 上的搜索栏重叠 8 使用 Xcode 7。这在 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()
}
更改为:
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 上设置 definesPresentationContext,而不是视图控制器。
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 的 header 视图设置为新创建的视图将解决问题。
使用 UISearchController 向 UITableView 添加过滤。 header 部分与 iOS 上的搜索栏重叠 8 使用 Xcode 7。这在 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()
}
更改为:
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 上设置 definesPresentationContext,而不是视图控制器。
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 的 header 视图设置为新创建的视图将解决问题。