2016-06-01 24 views
1

tableHeaderViewに、これらのプリセットの検索バーを追加したUITableViewがあります。UITableViewヘッダーのレイアウトが誤って下に移動しました

searchController.searchResultsUpdater = self 
searchController.dimsBackgroundDuringPresentation = false 
definesPresentationContext = false 
searchController.searchBar.placeholder = "Search by name or phone number" 
searchController.searchBar.searchBarStyle = .Minimal 
searchController.hidesNavigationBarDuringPresentation = false 
tableView.tableHeaderView = searchController.searchBar 

しかし、一度プログラムを実行すると、下手にシフトします。私は私のストーリーボードで私の制約を3倍にチェックしましたが、私が知る限り正しく設定されています。これは何かtableHeaderViewはありますか?デフォルトでは

enter image description here

+1

に拘束テーブルビューの上部には何ですか?ナビゲーションバーの下部にある場合は、このように表示されます – Gruntcakes

+3

[automaticAdjustsScrollViewInsets](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/)を設定する必要があります。 occ/instp/UIViewController/automaticallyAdjustsScrollViewInsets)をNOに設定します。 –

+0

それは何ですか、それをどうやって変更するのですか、それを無視しますか?ナビゲーションバーが必要です。上のバーを推測するように変更しても、そのギャップはまだあります。 – ggworean

答えて

2

、(TableViews含む)ScrollViewsは自動的にナビゲーションバーなどを考慮するために、彼らのインセットを調整します。これにより、コンテンツの上部がナビゲーションバーのようなものの下から開始することができますが、その下にはスクロールします。ただし、制約の設定方法によっては、このインセットを既に考慮している可能性があります。その場合、ビューコントローラーのautomaticallyAdjustsScrollViewInsetsプロパティをNOに設定することができます。

プログラム:

// Obj-c 
[viewController setAutomaticallyAdjustsScrollViewInsets:NO]; 

// Swift 
viewController.automaticallyAdjustsScrollViewInsets = false 

ストーリーボード(属性インスペクタ):

enter image description here

関連する問題