2015-05-22 27 views
9

Ich habe eine Tabellenansicht mit einer Suchleiste. Die Suchleiste wird von einem UISearchController bereitgestellt. Wenn ich die Suchleiste zur Kopfansicht der Tabelle hinzufüge, wird die erste Zeile der Tabelle von der Suchleiste abgedeckt.UISearchController Suchleiste verbirgt die erste Zelle in der Tabellenansicht

Wie verhindere ich, dass die Suchleiste die erste Zeile versteckt?

Ich habe diesen Schnipsel in viewDidLoad:

self.searchController = UISearchController(searchResultsController: nil) 
self.searchController.searchResultsUpdater = self 
self.searchController.searchBar.delegate = self  
self.tableView.tableHeaderView = self.searchController.searchBar 
self.searchController.dimsBackgroundDuringPresentation = false 
self.searchController.searchBar.sizeToFit() 
+0

Wenn Sie die Suchleiste aktivieren und dann abbrechen, funktioniert es danach korrekt? – Zsolt

Antwort

9

Es scheint, dass Sie explizit müssen den Umfang Schaltfläche Titel Array festlegen, wenn Sie nicht Umfang Schaltfläche Titel haben.

self.searchController.searchBar.scopeButtonTitles = [NSArray array]; 
+4

Als zusätzlichen Kommentar müssen Sie dieses Array _before_ als Header setzen oder Berechnungen (wie sizeToFit) berücksichtigen. – OlivaresF

+0

Dies war für iOS 8 notwendig, ich habe das Layoutproblem in iOS 9 nicht erkannt. Dies löst jedoch das Problem. –

1

Dieses Problem wurde als Problem mit Layouteinschränkungen festgestellt. Gelöst, indem ich alle meine Constraints in der Ansicht, die meinen SearchController enthält, ablege und einzeln wieder hinzufüge, bis ich die problematische Constraint gefunden habe. Verwenden Sie Xcode 7.1

Verwandte Themen