2017-07-26 6 views
1

テーブルビューで検索コントローラが正常に動作しています。私は位置を設定し、それが最初に表示されていない後に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を使用して検索コントローラを修正する方法を教えてください。

答えて

0

正しく理解すればnavigation itemの後に別のUISearchbar属性インスペクタを追加し、次にUITableViewを追加します。制約を固定しました。これで検索バーが常に表示されます。あなたのケースでは、検索バーはテーブルヘッダービューに設定されています。そのため、スクロールしているときに検索バーもスクロールされています

+0

スクロールするときに検索コントローラを修正する方法tableview。私は検索ボタンをクリックして表示オプションを非表示にする必要があります – naga

関連する問題