iOS 11 Fließender TableView-Header

9

Lassen Sie eine App mit mehreren Abschnitten, ein paar Zeilen pro Abschnitt, wenn "erweitert", keine, wenn "minimiert". Jeder Abschnitt hat einen Abschnitt Header, wurde wiederverwendet mit einer Unterklasse von UITableViewHeaderFooterView usw. So weit so gut.

Dann in iOS 11:

Screenshot, in dem das Problem beschrieben wird

Ich habe den visuellen Debugger verwendet und bestätigt, dass mein Abschnittsheader schwebt. Alle Zeilen unterhalb der Kopfzeile werden korrekt angezeigt, die anderen Kopfzeilen werden ordnungsgemäß angezeigt.

Um die Vernunft wiederherzustellen, habe ich die gesamte Wiederverwendungslogik für den Header weggeworfen und sie nur programmatisch gemacht. Gleich. Alle Arbeiten vor iOS 11 schweben immer noch in iOS 11. Der Abschnitt, der schwebt, scheint sich jedes Mal zu ändern, also gibt es das.

Irgendwelche Ideen?

    
VDub19 15.09.2017, 20:15
quelle

4 Antworten

35

Ich bin gerade auf ein ähnliches Problem gestoßen und habe die Diskussion zu diesem Thema gefunden, die für mich funktioniert hat:

> %Vor%

Scheint so, als ob das Standardverhalten von UITableView in iOS 11 geändert wurde, um geschätzte Höhen zu verwenden. Die Release Notes für iOS 11 Beta 2 sagen:

  

Tabellenansichten verwenden jetzt standardmäßig geschätzte Höhen. Dies bedeutet auch, dass Zellen und Abschnittskopf- / Fußzeilenansichten jetzt standardmäßig eine eigene Größe haben. Der Standardwert für die Eigenschaften "approchtedRowHeight", "decuratedSectionHeaderHeight" und "decuratedSectionFooterHeight" lautet nun UITableViewAutomaticDimension. Dies bedeutet, dass die Tabellenansicht eine geschätzte zu verwendende Höhe auswählt. Sie sollten nach Möglichkeit immer eine genauere Schätzung für jede Eigenschaft bereitstellen. Dies ist Ihre beste Schätzung des Durchschnittswerts der tatsächlichen Höhen. Wenn Sie über vorhandenen Tabellenansichtscode verfügen, der sich beim Erstellen Ihrer App mit dem iOS 11-SDK anders verhält und Sie keine Selbstdimensionierung übernehmen möchten, können Sie das vorherige Verhalten wiederherstellen, indem Sie geschätzte Höhen inaktivieren, indem Sie für null den Wert null festlegen jede geschätzte Höheneigenschaft. (30197915)

Siehe auch die Beta 2-Versionshinweise hier gespiegelt .

    
ahmedre 16.09.2017 19:18
quelle
1

Versuchen Sie, den Tabellenstil von einfach zu gruppiert zu ändern.

    
Anas Alhasani 15.09.2017 22:48
quelle
1

Ich weiß nicht warum in meinem Fall @ ahmedre Antwort funktioniert nicht ...

Also meine Antwort vielleicht hilft Ihnen, wenn Sie alle geschätzten Eigenschaften auf 0 auch nicht funktioniert:

%Vor%     
Arco 10.11.2017 03:45
quelle
0

Hast du die Kopfzeile aus einem Storyboard hinzugefügt, falls ja, teile bitte die "Kopfzeilen von Tableview im Storyboard" Screenshot
Berechnen Sie auch die Zeilenhöhe? sind Berechnungen wie erwartet?

    
Raj 15.09.2017 20:26
quelle

Tags und Links