使用 UISearchController 修复了 UISearchBar - 不使用 UITableView 的 header 视图

Fixed UISearchBar using UISearchController - Not using header view of UITableView

是否可以将 UISearchController 的 UISearchBar 放在 UITableView 的 header 视图以外的地方?

apple's sample code for UISearchController中使用了以下内容。

[self.searchController.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchController.searchBar; 

是否可以将 searchBar 定位到其他地方? 假设我们想要实现一个固定的 UISearchBar,就像在联系人应用程序中使用的那样。 我已经试过了,但是搜索栏根本没有出现。

您可以将UISearchController的UISearchBar放在导航栏中,使其固定不变

self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;

// Include the search bar within the navigation bar.
self.navigationItem.titleView = self.searchController.searchBar;

self.definesPresentationContext = YES;

创建一个 uiview 并在该视图中添加 searchController.searchbar。 之后将此视图添加到您的 viewController.view。 table 视图上方。

那就不会滚动了。

   var viewTemp = UIView(frame: CGRectMake(0.0, 64.0,320.0, 44))
   viewTemp.addSubview(self.searchController.searchBar)
   self.view.addSubview(viewTemp);

而不是直接将 UISearchBar 放在 UITableView 之上。 将 UISearchBar 放入视图中。