搜索控制器沿着tableview移动

时间:2017-07-31 09:16:23

标签: ios swift uitableview uisearchbar uisearchcontroller

搜索控制器代码

它可以正常搜索

问题1:

当我滚动tableView时,我想显示搜索控制器和表视图,搜索控制器也会以表格视图滚动。

 let searchController = UISearchController(searchResultsController: nil)

  override func viewDidLoad() {
        super.viewDidLoad()
          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

        definesPresentationContext = true
}

更新搜索数据:

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()
    }

问题2:

Tableview navigation bar包含搜索按钮,当我点击navigation bar处的搜索按钮时,搜索控制器应显示其工作在tableview标题,但在滚动tableview之后我想在tableview起始单元格中显示搜索控制器。  我可以尝试滚动代表它不适合我  请帮助我......!

这是导航

搜索按钮的代码
var launchBool: Bool = false {
    didSet {
        if launchBool == true {

            Status = 1
            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

0 个答案:

没有答案