2017-04-11 5 views
2

Ich habe eine gruppierte Tabellenansicht mit mehreren Abschnitten, gibt es eine Lücke zwischen der Kopfzeile und der ersten Zelle, die ich nicht verstehe. Es ist nicht der Abschnitt Kopfzeile/Fußzeile, und wenn ich die Debug-Ansicht Hierarchie verwenden es sieht aus wie der y-Ursprung des Zellrahmens wird das Problem verursacht:Lücke zwischen Tabellenkopf und erste Zelle

View hierarchy

(UITableViewWrapperView markiert)

Die rote und blaue Ansichten sind Kopf- und Fußzeilen, ich habe sie so gefärbt, dass ich sie als das Problem ausschließen konnte.

Wenn ich einen Ausdruck der ersten Zelle erhalten, hat der Rahmen Eigenschaften: frame = (0 35; 320 86)

So sieht es wie die y-35-Koordinate wird der Spalt zwischen der Zelle verursacht und dem Kopf . Wenn ich die y-Koordinate der Zelle in CellForRowAt auf 0 setze, scheint es nichts zu tun. Ich habe bereits automatisch AdjustScrollViewInsets auf false gesetzt.

Ein Punkt in die richtige Richtung würde sehr geschätzt werden.

+0

http://stackoverflow.com/questions/19111451/ios-7-guidableview-how-to-remove-space-between-navigation-bar-and-first-cell – Sahil

+0

@Sahil die Mehrheit der Antworten in diesem post erwähnen automatischAdjustScrollViewInsets, die ich in der ursprünglichen Frage gesagt hat, wurde bereits versucht. Auch versucht, die TableView contentInset anzupassen, funktioniert auch nicht. – mike

+0

Überprüfen Sie auch Ihre Layout-Ränder in Interface Builder, wenn sie auf Standard gesetzt sind, können Sie versuchen, sie in Explicit zu ändern und auf 0 zu setzen. – Norman

Antwort

0

Das gleiche Problem passiert mir jetzt.

Ich habe gerade gearbeitet, um dies zu lösen. Bitte prüfen Sie das. Es kann für Sie arbeiten.

tableView.tableHeaderView = myView

verwendete ich Auto-Layout und Einschränkungen in der Kopfsicht. Nachdem ich es auf meine TableHeaderView gesetzt habe, habe ich Header-Frame als (0 35 0 0).

Ich habe die Höhe meiner Header-Ansicht mit SystemLayoutSizeFitting.height und ich kenne die Breite als 414 und zurückgesetzt den Header-View-Frame auf (0 0 414 200) und dann setze ich die Header-Ansicht wieder auf meine TableHeaderView.

let height = myView.systemLayoutSizeFitting (UILayoutFittingCompressedSize) .Height // height = 200

myView.frame CGRect = (x: 0, y: 0, Breite: UIScreen.main.bounds.width, Höhe: Höhe)
tableView.tableHeaderView = myView

Jetzt funktioniert es für mich.

Verwandte Themen