Ziele des Blogs
Nachdem wir diesen Blog gelesen haben, werden wir in der Lage sein, den Grund für den zusätzlichen Abstand zwischen der oberen Navigationsleiste und der Bildlaufansicht in der iOS-App in den Versionen iOS 7 bis iOS 10 zu verstehen.
Problem Statement
Wenn wir eine Bildlaufansicht oder Tabellenansicht (eine beliebige Bildlaufansicht) in einem Ansichtscontroller hinzufügen, der oben eine Navigationsleiste enthält, stehen wir vor einem häufigen Problem, nämlich etwas zusätzlichem Platz zwischen der oberen Navigationsleiste und der Bildlaufansicht.
Warum die aktuelle Ausgabe da ist
Wenn wir von iOS 7 bis iOS 10 eine Navigationsleiste über einem beliebigen ViewController hinzufügen, bietet uns Xcode eine Option, um die Navigationsleiste durchscheinend zu machen. Damit wir durch die Navigationsleiste sehen können und das Scrollen der Seite durch die Navigationsleiste gesehen werden kann. Der Grund für das Problem ist nun, dass, wenn eine Bildlaufansicht im ViewController hinzugefügt wird und die Navigationsleiste festgelegt und durchscheinend ist, die ScrollView einen Rand von der Hauptansicht für die Navigationsleiste lässt. Aber die Navigationsleiste wurde zur Laufzeit hinzugefügt und verschiebt die Hauptansicht nach unten, sodass die Navigationsleiste oben passt. In diesem Fall wird die Ansicht um die Navigationsleiste nach unten verschoben und die Bildlaufansicht lässt einen Rand für die Navigationsleiste. Hier beobachten wir, dass der zusätzliche Abstand zweimal hinzugefügt wurde. Dies war der einzige Grund, warum wir zusätzlichen Platz zwischen der Navigationsleiste und der Bildlaufansicht sehen.
Verfahren zur Lösung des Problems-
Es gibt zwei Möglichkeiten, das Problem zu lösen. In beiden Fällen schränken wir die Bildlaufansicht ein, um einen zusätzlichen Spielraum für die Navigationsleiste zu lassen.
1. Wir können die Translucent-Option für die Navigationsleiste in Xcode auf „False“ setzen � Dadurch wird die Navigationsleiste undurchsichtig und die Bildlaufansicht ist nicht erforderlich, um unter der Navigationsleiste zu scrollen. Die Scroll-Ansicht lässt also keinen Platz für die Navigationsleiste. Im folgenden GIF können Sie sehen, dass sich die Layoutbeschränkung der Ansicht ändert, wenn wir die Eigenschaft „Transluzent“ der Navigationsleiste aktivieren/deaktivieren.
2. Wir können die Eigenschaft „Adjust Scroll View Insets“ des ViewControllers deaktivieren. � Dadurch wird die Bildlaufansicht eingeschränkt, um oben zusätzlichen Platz für die Navigationsleiste zu lassen.
Zusammenfassung
Nachdem Sie das obige Verfahren befolgt haben, können Sie den zusätzlichen Abstand zwischen der Navigationsleiste und der Bildlaufansicht entfernen.