Unerwünschter weißer Platz links von UIScrollView auf dem iPhone X

8

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.

    
zsong 22.10.2017, 23:49
quelle

4 Antworten

0

Nun, ich habe dieses Problem auf nicht elegante Weise gelöst. Aber es funktioniert wie ein Zauber. (Ich habe alle anderen Antworten versucht. Danke für Ihre Hilfe, aber diese Antworten scheinen in meinem Fall nicht zu funktionieren.)

%Vor%     
zsong 11.02.2018, 22:57
quelle
3

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.

Apple doc für safeAreaLayoutGuide

    
Jack 23.10.2017 04:18
quelle
1

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.

    
AamirR 03.02.2018 21:23
quelle
-1

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:

  • Legen Sie die blaue Hintergrundfarbe (die Sie für Ihre Bildlaufansicht angewendet haben) auf die Hauptansicht des Ansichtscontrollers fest, wenn die Bildlaufansicht den gesamten Bildschirm abdeckt .
  • legen Sie einen klaren Farbhintergrund für Ihre Bildlaufansicht fest

Fügen Sie diesen Code in Ihrem viewDidLoad

hinzu %Vor%

Hier sind gute Referenzantworten bezüglich des sicheren Bereichslayouts zum besseren Verständnis:

Krunal 23.10.2017 04:30
quelle