UIScrollView
funktioniert gut ohne den Leerraum auf allen iPads oder iPhones außer iPhone X. Wie kann ich den Leerraum entfernen?
Ich benutze Storyboards. Bounce On Scroll / Zoom sind alle deaktiviert. Kein Leerzeichen auf dem iPad oder iPhone außer iPhone X. Ich denke, es könnte etwas mit der Safe-Area-Sache zu tun haben.
Die Einstellung relativ zu safeArea
ist eine gute Vorgehensweise für iPhone-X.
So sagt Apple -
Wenn die Ansicht auf dem Bildschirm sichtbar ist, spiegelt diese Anleitung den Teil von die Ansicht, die nicht von Navigationsleisten, Tab-Leisten, Symbolleisten, und andere Vorfahrenansichten.
In Ihrem Fall geben Sie Einschränkungen leading
& amp; trailing
von scrollView
mit safeArea
, Nicht superView
Wenn Sie also riskieren, dass superview
statt safeArea
eingeschränkt wird, kann Ihr Objekt-Inhalt abgeschnitten werden, besonders wenn Sie nach links drehen, wird Inhalt von ganz oben unter iPhone-X abgeschnitten.
Dieser Abstand stammt aus dem sicheren Bereich, der links / rechts von UIScrollview als Inhaltseinfügungen im Querformat auf dem iPhone X verwendet wird und mit der schreibgeschützten Eigenschaft UIScrollview.safeAreaInsets
angezeigt wird.
Die folgende Zeile kann verwendet werden, um sichere Bereiche zu entfernen, wenn Sie nicht brauchen:
UIScrollview.contentInsetAdjustmentBehavior = .never
Der Standardwert, der UIScrollViewContentInsetAdjustmentBehavior.automatic
ist, enthält die Ränder für Ränder des Sicherheitsbereichs als Inhaltseinfügungen.
Hinweis: Auto-Layout-Constraints haben nichts mit den Einfügungen zu tun, sondern nur mit dem Justierungsverhalten von iOS 11 UIScrollview-Inhaltseinfügungen.
Safe Area Layout ist für diesen Leerraum verantwortlich.
1. Option:
Ignorieren Sie das sichere Bereichslayout für Ihre Bildlaufansicht und legen Sie die Einschränkungen für die Bildlaufansicht in Bezug auf die Superansicht (oder Hauptansicht) fest. Scrollview behandelt automatisch den sicheren Bereich für den Inhalt beim Scrollen.
Landschaftsansicht:
Porträtansicht:
2. Option:
Ich empfehle nicht, das sichere Bereichslayout für Ihre Bildlaufansicht und eine alternative Lösung zu entfernen / ändern, die das Weißraumsichtbarkeitsproblem lösen kann:
Fügen Sie diesen Code in Ihrem viewDidLoad
Hier sind gute Referenzantworten bezüglich des sicheren Bereichslayouts zum besseren Verständnis:
Tags und Links ios uiscrollview background-color safearealayoutguide iphone-x