2017-11-06 2 views
0

Wenn ein Table View Controller mit dem Interface Builder erstellt wird, wird auf iPhone X die niedrigste sichtbare Zelle durch den Startbildschirm und die Zelle verdeckt Ecken werden standardmäßig vom gekrümmten Bildschirm abgeschnitten - siehe Abbildung unten.Tabellenansicht Controller, die in Interface Builder erstellt wurden, haben ihre unteren Zellen abgeschnitten und auf dem iPhone verdeckt. X

Wenn ich einen View-Controller verwende und eine Tabellenansicht einfüge, dann stelle ich ihn von Hand auf. Ich kann die untere Layout-Anleitung mit der Tabellenansicht verwenden, um sicherzustellen, dass dieses Verdeckungs- und Clipping-Verhalten nicht auftritt Die Tabellenansicht darf nicht in den gekrümmten Teil des Bildschirms reichen.

Ich aktualisiere ein paar Legacy-Apps und würde es vorziehen, die vorhandenen Table-View-Controller nicht, wenn möglich, in View-Controller zu konvertieren. Wie kann ich Tabellen-Controller, die mit Interface Builder erstellt wurden, ändern?

According to the Apple docs, by using the standard interface elements this shouldn't be a problem.

Inset wesentliche Inhalte Clipping zu verhindern. Im Allgemeinen sollte der Inhalt zentriert und symmetrisch eingesetzt werden, so dass er in jeder Ausrichtung gut aussieht und nicht durch Ecken oder den Sensor des Geräts gehackt oder durch die Anzeige für den Zugriff auf den Startbildschirm verdeckt wird. Verwenden Sie für beste Ergebnisse die standardmäßigen, vom System bereitgestellten Schnittstellenelemente und Auto Layout, um Ihre Schnittstelle zu erstellen. Alle Apps sollten sich an die von UIKit definierten sicheren Bereichs- und Layout-Ränder halten, die entsprechende Insettings basierend auf dem Gerät und Kontext sicherstellen.

iPhone X screenshot

+1

Haben Sie an den Safe Area Führer angesehen? https://developer.apple.com/documentation/uikit/uiview/positioning_content_relative_to_the_safe_area –

+0

Ich habe gesucht, aber habe nichts gefunden, das nützlich scheint. Kannst du genauer sein? –

Antwort

0

Wenn Sie aktiviert automaticallyAdjustsScrollViewInsets, wird der Tabellenansicht auf Haus-Anzeige, wenn Sie nach unten scrollen. Ich denke, das ist, was Apple will, nutzen Sie den vollen Bildschirm zur gleichen Zeit alle Elemente können interagiert werden.
Wenn Sie möchten, dass Zellen in UITableViewController nicht verdeckt oder abgeschnitten werden. Ich schlage vor, dass Sie eine einfache Stil-Tabellenansicht verwenden, setzen Sie contentInset, um die Abschnittsfußzeile unter dem Home-Indikator zu verschieben. Ich habe es versucht, es hat funktioniert, sah aber hässlich aus. Wie folgt aus: enter image description here

+0

Von dem Dokument, mit dem ich verlinkt habe, glaube ich nicht, dass sie diese untere Zeile abgeschnitten haben wollen. Bearbeitete meine Frage und fügte das relevante Zitat hinzu. –

+0

@NicholasGresham Eigentlich viele Apps erweitert unter Home-Indikator, zum Beispiel iMessage. Ich denke, es ist eine Lösung für Ansichten, die nur eine Liste ohne Tab-Leiste haben. – Lumialxk

+0

Oh, wirklich? Danke, ich werde noch mehr Nachforschungen anstellen. Ich hatte noch keine Chance, ein echtes Gerät zu sehen. –

0

Am Ende umgewandelt ich die Table View Controller in View-Controller und hat eine untere Ausrichtung Einschränkung auf die Tabellenansicht

Verwandte Themen