Ich arbeite mit Autolayout und Einschränkungen und habe festgestellt, dass es Constrain to margins
in Xcode 6 eine Option gibt, die in Xcode 5 nicht vorhanden war und standardmäßig aktiviert ist.
Ich habe ein Testprojekt erstellt und dann UITableView
ein ViewController hinzugefügt, dessen Frame auf die gleiche Größe wie die Ansicht eingestellt ist, und Einschränkungen hinzugefügt
Xcode 6 Sie können hier sehen, obwohl die Tabellenansicht denselben Rahmen wie die Ansicht hat. Xcode schlägt vor, -16 als Einschränkung hinzuzufügen, während Xcode 5 das Hinzufügen des Abstands 0 vorschlagen würde.
Wenn Sie nun die Option "Auf Rand beschränken" deaktivieren, verhält sie sich wie Xcode 5 und schlägt vor, 0 als Einschränkung hinzuzufügen
Außerdem habe ich festgestellt, dass ich die Storyboard-Datei in Xcode 5 nicht mehr öffnen kann, wenn ich die Einschränkung mit dem eingeschränkten Rand hinzugefügt habe. Daher ist sie in Xcode 6 definitiv etwas Neues
Hoffentlich kann ich meine Frage richtig erklären. Ich würde gerne verstehen, was "Randbeschränkung" tatsächlich bewirkt und wann ich es verwenden sollte und wann nicht. Ich entschuldige mich, wenn es etwas sehr Einfaches und Offensichtliches ist.
BEARBEITEN
Ich habe hier in der Diskussion etwas über Layoutränder gefunden . Ich frage mich, ob es damit zusammenhängt.
quelle
Antworten:
Ich verstehe überhaupt nicht, warum sich die Leute beschweren, dass " Ränder vor iOS 8 einen regelrechten Absturz verursachen würden. "
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 derUIView.layoutMargins
Eigenschaft im Code, der nur unter iOS8 verfügbar ist, können Sie diese Werte jedoch anpassen.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.
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:
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.
quelle
In iOS 8 haben Sie jetzt die Möglichkeit, Ihre Einschränkungen relativ zu einem vordefinierten Rand für die Grenzen der Übersicht zu definieren, anstatt die Grenzen der Übersicht selbst. Ja, es hängt vollständig mit den Layouträndern zusammen, auf die Sie in den Dokumenten hingewiesen haben. Ein Vorteil besteht darin, dass Sie Ihre Ränder für jeden Gerätetyp dynamisch oder unterschiedlich neu definieren können und das Layout entsprechend aktualisiert wird, ohne die Einschränkungen zu ändern.
Wann Sie es verwenden: Wenn Sie diese neue Flexibilität nutzen möchten.
Wann Sie es NICHT verwenden sollten: Für jede App, die unter iOS 7 oder niedriger ausgeführt werden soll.
quelle
Die Eigenschaft auf UIView ist :
layoutMargins
. Siehe die Apple Docs . Wenn die Layoutränder 8,8,8,8 (Standardeinstellung) sind, hat eine Einschränkung mit 0, die zum Containerrand führt, eine x-Position von 8. Beachten Sie, dass dies nur unter iOS8 oder höher verfügbar ist.Für alle, die nicht möchten, dass ihre Einschränkungen an den Containerrand gehen:
STRG + Klicken + Ziehen, um das Popup zum Erstellen von Einschränkungen anzuzeigen.
Wenn im Menü angezeigt wird, dass die Einschränkung für den Rand standardmäßig erstellt werden soll, halten Sie die Optionstaste / Alt gedrückt, damit die Einschränkung für den Container und nicht für den Containerrand vorgenommen werden kann.
Jetzt wird die Option angezeigt, die Einschränkung NICHT am Rand zu erstellen. Dies ist viel schneller in meiner Nutzung.
quelle