2016-11-22 12 views
0

この問題は、UISearchBarがアクティブになったときにステータスバーと重なっていることが基本です。すでに多くの同様の問題が掲載されていることを知っています。私はすべての手段を試しましたが、まだ解決できませんでした。UISearchBarの背景に余分なスペースがあり、UISearchBarがステータスバーと重複しています

画面が初期化されると、検索バーが正しい位置に表示されます。画面を少しスクロールすると、iPhoneのメールアプリケーションから取得したものと比較して、検索バーの背景が通常よりも大きいことがわかります。

When screen is scrolled down a bit

検索バーの背景に余分なスペースの高さは、ステータスバーの高さと同じです。私はこれが次の問題を引き起こしたと考えています。つまり、検索バーがアクティブになると、ステータスバーと重なってしまいます。しかし、検索がキャンセルされると、最初の画像に示されているように通常の場所に戻されます。

Search bar overlaps with status bar when activated.

これは私のコードです。

グローバルヴァール:のviewDidLoadで

let searchController = UISearchController(searchResultsController: nil) 

self.extendedLayoutIncludesOpaqueBars = true 
    self.definesPresentationContext = true 
    self.navigationController?.navigationBar.isHidden = false 
    self.originalFrame = self.tabBarController?.tabBar.frame 
    searchController.hidesNavigationBarDuringPresentation = true 
    searchController.searchBar.barTintColor = Settings.tealColor 
    searchController.searchResultsUpdater = self 
    searchController.dimsBackgroundDuringPresentation = false 
    searchController.searchBar.scopeButtonTitles = ["All", "Pre-order", "Delivery", "Carry-out", "Dine-in", "History"] 
    searchController.searchBar.delegate = self 
    searchController.searchBar.sizeToFit() 
    restaurantTableView.tableHeaderView = searchController.searchBar 

あなたのすべてのヘルプは大歓迎されます。私はこの問題を2日間働いた。ありがとう

答えて

0

私はすでに2日かかった問題を投稿してから30分後に、私はこれを自分で考え出しました。原因は、カスタマイズされたナビゲーションバーから組み込みのナビゲーションバーに切り替えた後に削除しなかった次のコードブロックでした。

func position(for bar: UIBarPositioning) -> UIBarPosition { 
    return UIBarPosition.topAttached 
} 

とにかく、ありがとうございました。同じ問題を抱えている人がここで恩恵を受けることができたらと思います。

関連する問題