在我的应用程序中,我有一个UITableViewController,我想给它添加一个搜索栏。该表视图有3个部分,当单击其中一个部分时展开。我将此代码添加到viewDidLoad中:
searchBar.showsScopeBar = true
searchBar.delegate = self
searchBar.frame = CGRectMake(0, 0, tableView.frame.size.width, 100)
self.view.addSubview(searchBar)问题是:当您打开搜索栏时,它会出现在第一节中,并且应该出现在整个表视图之上,有什么建议吗?任何帮助都是非常感谢的!
发布于 2015-11-10 12:00:55
您可以将searchBar添加为TableView of TableView的tableHeaderView。
发布于 2015-11-10 14:15:59
在Matt编写的iOS 9编程中,您可以在第二章:表视图和控制器视图中找到非常有用的示例。
let src = SearchResultsController(data: self.sectionData)
let searcher = UISearchController(searchResultsController: src)
self.searcher = searcher
searcher.searchResultsUpdater = src
let b = searcher.searchBar
b.sizeToFit() // crucial, trust me on this one
b.autocapitalizationType = .None
self.tableView.tableHeaderView = b
self.tableView.reloadData()
self.tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition:.Top, animated:false)他还警告说,添加搜索栏作为表视图的标题视图可能会产生奇怪的效果:它会导致表视图的背景色被灰色覆盖,当用户向下滚动时,在搜索栏上方可见。正式的解决方法是为表视图分配一个具有所需颜色的backgroundView。
https://stackoverflow.com/questions/33628885
复制相似问题