732 Stimmen

Warum gibt es zusätzlichen Abstand oben auf meiner UITableView mit dem Style UITableViewStyleGrouped in iOS7?

Ab iOS 7 gibt es zusätzlichen Platz oben auf meinen UITableView's, die den Style UITableViewStyleGrouped haben.

Hier ist ein Beispiel:

Bildbeschreibung hier eingeben

Die Tabelle beginnt beim ersten Pfeil, es gibt 35 Pixel unerklärlichen Abstand, dann ist der grüne Header eine UIView, die von viewForHeaderInSection zurückgegeben wird (wo die Sektion 0 ist).

Kann jemand erklären, woher diese 35 Pixel kommen und wie ich sie loswerden kann, ohne zu UITableViewStylePlain zu wechseln?


Update (Antwort):

In iOS 11 und später:

tableView.contentInsetAdjustmentBehavior = .never

7voto

LorikMalorik Punkte 2001

Ich habe gerade entfernt UITableView von Interface Builder, habe es noch einmal erstellt und komische 35px sind verschwunden.

Es scheint, dass es einen seltsamen Fehler in Interface Builder gibt.

7voto

Oded Punkte 895

Ich hatte dieselbe Lösung wie arielyz. Sobald ich das UITableView nicht als ersten Subview des Eltern-Views verschoben habe, ist es verschwunden. Mein Abstand betrug 20 px, nicht 35.

Ich konnte es nicht in einem Portrait-Xib reproduzieren, nur in einem Landschafts-Xib. Falls ich es in einer einfachen Demo-App reproduzieren kann, werde ich später einen Radar-Bug einreichen.

7voto

Shahzaib Maqbool Punkte 1391

Benutze diesen, ich glaube das hilft...

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
    return 0.005f;// dies entsprechend dessen einstellen, was du möchtest...
 }

6voto

Alvin George Punkte 13610
überschreiben Sie die Funktion viewWillAppear(animated: Bool) {
        self.edgesForExtendedLayout = UIRectEdge.None

 //  ODER

self.sampleTableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0);

   //ODER

 self.automaticallyAdjustsScrollViewInsets = false
        }

6voto

HannahCarney Punkte 3264
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{

    return CGFLOAT_MIN;
}

Das ist alles Leute!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X