2016-06-01 3 views
1

Ich habe eine UITableView, wo ich eine Suchleiste mit diesen Voreinstellungen zu tableHeaderView hinzufügen.Layout von UITableView Header falsch nach unten verschoben

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 

Sobald ich jedoch das Programm ausgeführt habe, ist es ungeschickt nach unten verschoben. Ich habe meine Einschränkungen in meinem Storyboard dreifach überprüft, aber soweit ich weiß, ist es korrekt eingerichtet. Ist das etwas, das tableHeaderView tut?

enter image description here

+1

Was ist die Spitze der Tabelle Ansicht eingeschränkt zu? Wenn es unten in der Navigationsleiste erscheint, wird es so aussehen: – Gruntcakes

+3

Muß möglicherweise [automaticallyAdjustScrollViewInsets] einstellen (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/ occ/instp/UIViewController/automatisch AdjustScrollViewInsets) zu NO. –

+0

Es ist, aber wie kann ich das ändern oder es ignorieren? Ich brauche die Navigationsleiste vorhanden. Selbst wenn die obere Leiste geändert wird, ist die Lücke immer noch vorhanden – ggworean

Antwort

2

standardmäßig ScrollViews (einschließlich Tableviews) automatisch ihre Einsätze anpassen, um für Bars Navigations Konto und dergleichen. Dies ermöglicht, dass der Anfang des Inhalts unter Dingen wie Navigationsleisten beginnt, aber immer noch darunter blättert. Abhängig davon, wie Sie Ihre Constraints eingerichtet haben, berücksichtigen Sie diesen Inset möglicherweise bereits. In diesem Fall können Sie die Eigenschaft automaticallyAdjustsScrollViewInsets auf dem View-Controller auf NO setzen.

Programmatically:

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

// Swift 
viewController.automaticallyAdjustsScrollViewInsets = false 

Storyboard (Attribute Inspektor):

enter image description here

Verwandte Themen