2017-09-28 12 views
0

UITableViewがあり、そのヘッダーを検索バーに設定しました。私はバーを検索するために集中した場合、それは私がナビゲーションバーにビューを使用していない、画面の一番上にジャンプiOS11より低いデバイス上で正常に動作します、私はテーブルの上部にある検索バーを修正したいiOS 11では、検索バーがtableHeaderViewから先頭にジャンプします。

self.definesPresentationContext = true 
self.extendedLayoutIncludesOpaqueBars = true; 

searchController.delegate = self 
searchController.hidesNavigationBarDuringPresentation = false 
searchController.searchResultsUpdater = self 
searchController.dimsBackgroundDuringPresentation = false 
searchController.searchBar.placeholder = NSLocalizedString("SEARCH_BOX_TEXT", bundle: bundle!, comment: "Search box text") 

searchController.searchBar.sizeToFit() 
searchController.searchBar.barTintColor = UIColor.lightGray 

searchController.searchBar.setValue(NSLocalizedString("SEARCH_BAR_CANCEL_BUTTON", bundle: bundle!, comment: "Search bar cancel button"), forKey: "_cancelButtonText") 

productListTable.tableHeaderView = searchController.searchBar 

前に:

enter image description here

と私はバーを検索するために注力した後:

enter image description here

+1

可能な重複(https://stackoverflow.com/questions/45798923/ios- 11-search-bar-jumping-to-screen) – D1mers0n

+0

@ D1mers0n、トップにナビゲーションバーがありません。あなたのリンクで提供されている回答では問題は解決しません。受け入れられた答え – kakajan

答えて

0

私も自分の検索を置きます私のテーブルビューのヘッダーにバーを入れてください

多分あなたはiOS11で正しく動作する私の答えを考えることができます。

ここにあります。ストーリーボードで

enter image description here

コード:

override func viewDidLoad() { 

    super.viewDidLoad() 

    self.setupSearchController() 

} 

func setupSearchController() { 

    self.searchResultController = UISearchController(searchResultsController: nil) 

    self.searchResultController.searchResultsUpdater = self 

    self.searchResultController.delegate = self 

    self.searchResultController.hidesNavigationBarDuringPresentation = false 

    self.searchResultController.dimsBackgroundDuringPresentation = false 

    self.searchResultController.searchBar.delegate = self 

    self.searchResultController.searchBar.searchBarStyle = .minimal 

    self.searchResultController.searchBar.tintColor = UIColor.white 

    self.phoneSearchView.searchBarContainer.addSubview(self.searchResultController.searchBar) 

    self.memberListTableView.tableHeaderView = self.phoneSearchView 

} 

override func viewWillLayoutSubviews() { 

    super.viewWillLayoutSubviews() 

    self.searchResultController.searchBar.sizeToFit() 

    self.searchResultController.searchBar.frame.size.width = self.phoneSearchView.searchBarContainer.frame.size.width 

    self.searchResultController.searchBar.frame.size.height = self.phoneSearchView.searchBarContainer.frame.size.height 

} 

結果:[画面の一番上にジャンプするiOSの11検索バー]の

enter image description here

関連する問題