使用表格视图快速搜索控制器滚动

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 时修复搜索控制器。当我点击搜索按钮显示和隐藏选项应该工作

以上是关于使用表格视图快速搜索控制器滚动的主要内容,如果未能解决你的问题,请参考以下文章

搜索控制器处于活动状态时出现表格视图时隐藏的第一行

在表格视图导航控制器之前添加快速视图控制器的推荐结构

快速在表格视图中插入单元格

IOS 7表格视图内容大小问题

刷新控件和搜索栏导致表格视图/滚动视图出现奇怪的偏移,如何解决?

滚动时的 iOS TableView 索引值