搜索控制器在swift中使用tableview滚动

时间:2017-07-26 17:40:24

标签: ios swift swift3 uisearchbar

使用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    
    }

enter image description here

当我点击搜索按钮时,当我点击搜索按钮时导航搜索栏控制器没有显示,当我点击搜索按钮时显示如何使用tableview修复搜索控制器滚动请帮助我

1 个答案:

答案 0 :(得分:0)

如果我理解正确,请在UISearchbar之后在属性检查器中添加单独的navigation item,然后在UITableView下面添加。固定约束。现在,您的搜索栏将始终可见。在您的情况下,搜索栏是设置为表标题视图。因此,当您滚动搜索栏时,也会滚动