2017-01-01 19 views
3

私はtableviewコントローラを持っています。 searchBarを追加しました。しかし、searchBarをクリックすると、searchBarとTableViewの間に空白がありますか?どうして?そしてそれはどのように修正するのですか? down iでは、スクリーンショットとコードtableViewControllerのリストを追加します。手伝ってくれてありがとう。なぜsearchBarとtableviewの間に空白を追加しましたか?

After click on searchBar

Click on searchBar

!!!!!! - TableViewControllerの一覧 - !!!!!!この問題が発生した

class AlfavitController: UITableViewController, UISearchResultsUpdating { 

var searchController : UISearchController! 
var resultController = UITableViewController() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.downloadData(param: Manager.id) 

    tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell") 

    self.searchController = UISearchController(searchResultsController: self.resultController) 
    self.tableView.tableHeaderView = self.searchController.searchBar 
    self.searchController.searchResultsUpdater = self 
    self.resultController.tableView.dataSource = self 
    self.resultController.tableView.delegate = self 
    definesPresentationContext = true 
} 

func updateSearchResults(for searchController: UISearchController) { 
    self.arFiltLet = self.arWords.filter{(lett : String) -> Bool in 
     if lett.lowercased().contains(self.searchController.searchBar.text!.lowercased()){ 
      return true 
     }else{ 
      return false 
     } 
    } 
    self.resultController.tableView.reloadData() 
} 

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if tableView == self.tableView { 
     return self.arWords.count 
    }else{ 
     return self.arFiltLet.count 
    } 
} 

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = self.tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
    if tableView == self.tableView{ 
     cell.textLabel?.text = self.arWords[indexPath.row] 
    }else{ 
     cell.textLabel?.text = self.arFiltLet[indexPath.row] 
    } 
    return cell 
} 
+0

[UIの上部に余分なパディングがあるのはなぜですか? iOS7でスタイルがUITableViewStyleGroupedのTableView](http://stackoverflow.com/questions/18880341/why-is-there-extra-padding-at-the-top-of-my-uitableview-with-style-uitableviewst) – Adeel

答えて

1

理由は。ビューコントローラが自動的にスクロールビューのインセットを調整する必要があるかどうかを示すブール値であるのUIViewControllerのプロパティautomaticallyAdjustsScrollViewInsets、で、YESデフォルト。

ソリューション: -

どちらかあなたののviewDidLoad()内のコードの下に書く:

automaticallyAdjustsScrollViewInsets = false 

か、使用方ストーリーボード/ XIBを通してそれを設定します。

enter image description here

+0

ありがとうしかし、動作しません! –

関連する問題