searchBar与节标题视图重叠

我把searchBar放在tableHeaderView中。 一切工作正常在iphone 6上,但在iphone 5s我得到这个奇怪的结果?

 override func viewDidLoad() {
    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self
    tableView.sectionIndexColor = Constants.Colors.ThemeGreen
    tableView.sectionIndexBackgroundColor = UIColor.clearColor()
    tableView.sectionIndexTrackingBackgroundColor = UIColor.clearColor()
    tableView.contentInset = UIEdgeInsetsMake(0, 0, CGFloat(Constants.Dimensions.TabBarHeight), 0)
    resultSearchController = UISearchController(searchResultsController: nil)
    resultSearchController.searchResultsUpdater = self
    resultSearchController.dimsBackgroundDuringPresentation = false
    resultSearchController.definesPresentationContext = true
    tableView.tableHeaderView = resultSearchController.searchBar
    resultSearchController.searchBar.sizeToFit()

 //Fetch data for the first time
    do{
      try fetchedResultsController.performFetch()
      listHeaderView?.count = "(fetchedResultsController.fetchedObjects!.count)"
    }catch{
      print("Error - Couldn't fetch list")
    }
  • 注意:我正在使用NSFetchedResultController来检索数据
  • 在这里输入图像描述


    这是解决方案。 不要调用sizeToFit()将searchBar放入tableHeaderView之后,但将其称为BEFORE。 幕后发生了什么......我想知道..

    resultSearchController.searchBar.sizeToFit() //Important to call sizeToFit BEFORE adding it to tableHeaderView or you get layout issues
    tableView.tableHeaderView = resultSearchController.searchBar
    

    看来只有下面的代码行才行......没有其他东西似乎现在正在工作。

    self.tableView.beginUpdates()
           // self.tableView.setTableHeaderView(headerView: self.filterView!)
            //self.tableView.reloadData()
            self.tableView.layoutIfNeeded()
            self.tableView.layoutSubviews()
            self.tableView.endUpdates()
    

    每次调整表格大小或更改约束条件时,都需要调用上面的代码。


    试试这可能会奏效

    resultSearchController.clipToBounds = true

    你也可以尝试一样

    searchControl.searchBar.clipToBounds = true
    

    我认为它适用于您的代码。

    链接地址: http://www.djcxy.com/p/31921.html

    上一篇: searchBar overlapped by section header view

    下一篇: Length in time of a wave file