UISearchBar上方的UITableView部分

时间:2016-03-02 18:11:08

标签: ios swift uitableview uisearchbar uitableviewsectionheader

我已将UISearchBar添加到我的UITableView。

// Search Bar
var leftPosSearchBar: CGFloat = 0
if (UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Phone) { leftPosSearchBar = 4 }
self.searchBar = UISearchBar(frame: CGRect(
    x: max(leftPosSearchBar, self.tableView.contentOffset.x + self.tableView.contentInset.right), 
    y: max(0, self.tableView.contentOffset.y + self.tableView.contentInset.top), 
    width: self.view.bounds.width, height: 45))
let tableHeaderView: UIView = UIView(frame: self.searchBar.frame)

tableHeaderView.addSubview(self.searchBar)
tableHeaderView.bringSubviewToFront(self.searchBar)

self.tableView.tableHeaderView = tableHeaderView
self.searchBar.searchBarStyle = UISearchBarStyle.Prominent
self.searchBar.delegate = self
self.searchBar.returnKeyType = UIReturnKeyType.Done
self.searchBar.enablesReturnKeyAutomatically = false
self.searchBar.translucent = false

还将这个简短的片段添加到"修复"滚动顶部的UISearchBar。

func scrollViewDidScroll(scrollView: UIScrollView) {
    var searchBarFrame:CGRect = self.searchBar.frame
    searchBarFrame.origin.y = max(0, 
        scrollView.contentOffset.y + scrollView.contentInset.top)
    self.searchBar.frame = searchBarFrame
}

在我使用UITableView中的部分之前,一切正常。然后这些部分在UISearchBar上分层并粘贴在UITableView的顶部。它应该放在UISearchBar下。

enter image description here

1 个答案:

答案 0 :(得分:0)

在scrollViewDidScroll中添加bringSubviewToFront。

tableHeaderView.bringSubviewToFront(searchBar)

我正在做一些类似但有UIView的东西,这对我有用。