使用表格视图快速搜索控制器滚动
Posted
技术标签:
【中文标题】使用表格视图快速搜索控制器滚动【英文标题】:Search Controller Scroll with tableview in swift 【发布时间】:2017-07-26 17:40:23 【问题描述】:带有 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 滚动后,当我双击搜索按钮时,它显示如何在滚动时使用 tableview 修复搜索控制器,请帮助我
【问题讨论】:
【参考方案1】:如果我理解正确,则在 navigation item
之后在属性检查器中添加单独的 UISearchbar
,然后在 UITableView
下方添加。固定约束。现在您的搜索栏将始终可见。在您的情况下,搜索栏是设置为表头视图。这样当你滚动搜索栏时也会滚动
【讨论】:
如何在滚动 tableview 时修复搜索控制器。当我点击搜索按钮显示和隐藏选项应该工作以上是关于使用表格视图快速搜索控制器滚动的主要内容,如果未能解决你的问题,请参考以下文章