UISearchBar的自定义位置

时间:2017-11-18 19:10:46

标签: ios swift uisearchbar uisearchcontroller

我目前正在尝试实现UISearchController及其关联的UISearchBar。 我的目标是在我的UITableView上面有一个UISearchBar,它一旦有焦点就会立即上升,如下图所示(我的旧UI与UISearchDisplayController截图,现已弃用): UISearchDisplayController screenshot

我已经尝试将我的UISearchBar设置为UITableView的标题,它运行良好,但我有2个问题:

  1. 搜索栏在逻辑上滚动显示表格视图内容
  2. 当搜索栏占据焦点时,它会保持在同一位置
  3. 以下是我配置UISearchBar的方式:

    func configureSearchController() { // Method called in the viewDidLoad()
        searchController = UISearchController(searchResultsController: nil)
        searchController!.searchResultsUpdater = self
        searchController!.dimsBackgroundDuringPresentation = false
        searchController!.searchBar.placeholder = "searchfood.searchbar.placeholder".localized
        searchController!.searchBar.sizeToFit()
        searchController!.hidesNavigationBarDuringPresentation = false
        print(searchController!.searchBar.frame)
    
        // Place the search bar view to the tableview headerview.
        foodsTableView.tableHeaderView = searchController!.searchBar
    
        // Search bar
        searchController!.searchBar.searchBarStyle = .prominent
        searchController!.searchBar.barTintColor = ColorLSDP.corail
        searchController!.searchBar.tintColor = ColorLSDP.beige
    }
    

    所以我试图删除以下几行:

    foodsTableView.tableHeaderView = searchController!.searchBar
    

    但是当我这样做时,我再也看不到UISearchBar了。 在检查了其他一些SO主题之后,我发现我的UISearchBar可能隐藏在我的UINavigationBar下面。所以我尝试在viewDidLoad()方法中添加以下行:

    self.navigationController?.navigationBar.isTranslucent = false
    self.edgesForExtendedLayout = []
    

    它什么都没改变。 无论如何,它没有解决我的主要问题,即这个搜索栏最初定位如上面的截图。

    有没有办法用全新的UISearchController正确地做到这一点?

    非常感谢您即将推出的答案, 问候, Seb R。

0 个答案:

没有答案