Ich verstehe überhaupt nicht, warum sich die Leute beschweren, dass " Ränder vor iOS 8 einen regelrechten Absturz verursachen würden. "
Das Festlegen Ihrer Einschränkungen in Bezug auf den Rand in einer XIB-Datei oder einem Storyboard führt NICHT zum Absturz Ihrer App unter iOS7, und es macht auch auf Ihrem iOS7-Gerät keinen Unterschied in der Benutzeroberfläche, solange Sie die Eigenschaften UIView.layoutMargins
und UIView.preservesSuperviewLayoutMargins
in Ihrem Code nicht berühren .
Was ist Ränder in iOS8
Layoutränder stellen eine Polsterung um das Innere von a dar UIView
, die das Layoutsystem beim Layouten von Unteransichten verwenden kann, um sicherzustellen, dass zwischen dem Rand einer Ansicht und einer Unteransicht eine Lücke verbleibt. In dieser Hinsicht ähnelt es sehr der Auffüllungseigenschaft, die Blöcken in CSS zugeordnet ist.
Standardmäßig UIView
hat a Layoutränder von 8 Punkten auf jeder Seite, und dies kann im Interface Builder nicht geändert werden . Durch Festlegen der UIView.layoutMargins
Eigenschaft im Code, der nur unter iOS8 verfügbar ist, können Sie diese Werte jedoch anpassen.
Sie können IB veranlassen, die Ränder mit Editor> Leinwand> Layoutrechtecke anzeigen anzuzeigen :
Ränder können verwendet werden, um das Layout Ihrer Ansichten und Unteransichten zu erleichtern. Alle UIView
werden standardmäßig mit Rändern geliefert, sie wirken sich jedoch nur dann auf die Platzierung der Ansicht aus, wenn Sie eine Einschränkung einrichten, die sich auf einen Rand bezieht.
Verwendung von Rändern
Die einzige Möglichkeit, Ränder in Interface Builder zu verwenden, besteht darin, die Option Relativ zu Rand zu aktivieren, während Sie Ihre Einschränkungen konfigurieren. Auf diese Weise lenken Sie Ihre Einschränkung auf die Verwendung von Rändern anstelle von Kanten, wenn Sie meine Ansicht gestalten.
Schauen wir uns vier verschiedene Möglichkeiten an, um eine führende Einschränkung zwischen einer Ansicht und ihrer Unteransicht einzurichten. Für jede Einschränkung, die wir überprüfen, ist die erste beschriebene Zuordnung die führende der Unteransicht und die zweite die führende der Übersicht . Was Sie besonders beachten möchten, ist der Status zum Aktivieren und Deaktivieren der Option Relativ zum Rand jedes Einschränkungsende, da hiermit festgelegt wird, ob die Einschränkung an den Rand oder den Rand der Ansicht gebunden ist.
- Erstes Element (Deaktivieren), zweites Element (Aktivieren): In diesem Fall erklären wir, dass der linke Rand der Unteransicht am linken Rand der Übersicht ausgerichtet werden soll (wie in diesem Bild gezeigt).
- Erstes Element (deaktivieren), zweites Element (deaktivieren): Beide verwenden Kante, nicht Rand . In diesem Fall erklären wir, dass der linke Rand der Unteransicht am linken Rand der Übersicht ausgerichtet werden soll.
- Erstes Element (Häkchen), zweites Element (Deaktivieren): In diesem Fall erklären wir, dass der linke Rand der Unteransicht am linken Rand der Übersicht ausgerichtet werden soll. Durch diese Art von Layout überlappt die Unteransicht tatsächlich die Übersicht.
- Erster Punkt (Scheck), zweiter Punkt (Scheck). Dies hat tatsächlich den gleichen Effekt wie Fall 2, da sowohl die Unteransicht als auch die Übersicht denselben Standardspielraum haben. Wir erklären, dass der linke Rand der Unteransicht am linken Rand der Übersicht ausgerichtet werden soll.
Was ist gut an Rändern?
Diese neue Funktion (iOS8) wirkt sich nur dann auf die Entwicklung der Benutzeroberfläche aus, wenn Sie Ränder verwenden.
Mithilfe von Rändern können Sie die Platzierung mehrerer Unteransichten anpassen, die eine gemeinsame Beziehung zu einer gemeinsam genutzten Übersicht haben, indem Sie den Wert einer einzelnen Eigenschaft ändern. Dies ist ein klarer Gewinn, wenn Sie alle zugehörigen Einschränkungen mit festen Werten festlegen. Wenn Sie den gesamten Abstand aktualisieren müssen, anstatt jeden Wert einzeln zu ändern, können Sie gleichzeitig alle relevanten Platzierungen ändern, indem Sie den Rand der Übersicht mit einer einzigen Zeile aktualisieren Code wie dieser:
self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);
Um diesen Vorteil zu veranschaulichen, werden im folgenden Fall die linken Ränder aller Unteransichten am linken Rand ihrer Übersicht ausgerichtet. Wenn Sie also den linken Rand der Übersicht ändern, wirken sich alle Unteransichten gleichzeitig aus.