使用tableview的搜索控制器工作正常。我必须设置位置并隐藏/显示它在桌面视图标题处工作的搜索控制器,当桌面视图在第一次单击导航栏上的搜索栏按钮后不显示时滚动。当我双击搜索按钮时,搜索栏控制器正在显示。我必须在tableview滚动后单击搜索按钮显示搜索控制器
这是搜索控制器的代码
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
{
tableView.tableHeaderView = nil
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false
tableView.tableHeaderView = searchController.searchBar
searchController.delegate = self
searchController.searchBar.sizeToFit()
self.searchController.searchBar.delegate = self
tableView.tableHeaderView = nil
}
func updateSearchResults(for searchController: UISearchController) {
_ = kidsData
let searchToSearch = searchController.searchBar.text
if(searchToSearch == "")
{
self.kidsData = self.KidsDataDuplicate
}
else{
self.kidsData.removeAll()
let itemsarray = self.KidsDataDuplicate
var forkidsinArray = \[String\]()
for Kids in itemsarray {
forkidsinArray.append(Kids.name)
if(Kids.name.range(of: searchToSearch!, options: .caseInsensitive) != nil)
{
self.kidsData.append(Kids)
}
}
}
self.tableView.reloadData()
}
hide and unhide code
var launchBool: Bool = false {
didSet {
if launchBool == true {
tableView.tableHeaderView = searchController.searchBar
let indexPath = IndexPath(row: 0, section: 0)
self.tableView.scrollToRow(at: indexPath, at: .middle, animated: true)
} else {
tableView.tableHeaderView = nil
myInt = 0
}
}
}
@IBAction func NAVSearchButton(_ sender: UIBarButtonItem) {
launchBool = !launchBool
}
当我点击搜索按钮时,当我点击搜索按钮时导航搜索栏控制器没有显示,当我点击搜索按钮时显示如何使用tableview修复搜索控制器滚动请帮助我
答案 0 :(得分:0)
如果我理解正确,请在UISearchbar
之后在属性检查器中添加单独的navigation item
,然后在UITableView
下面添加。固定约束。现在,您的搜索栏将始终可见。在您的情况下,搜索栏是设置为表标题视图。因此,当您滚动搜索栏时,也会滚动