UITableView に UISearchBar を追加しました。
// 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 の下にくっつくはずです。