Ich erstelle eine iOS-App in Xcode 5 und habe Probleme beim Hinzufügen von Layouteinschränkungen. In Xcode 4.x konnte ich jedem UI-Element einfach führende / nachfolgende / obere / untere Leerzeichen zum Container (Übersicht) hinzufügen. Jetzt habe ich nur noch diese Option:
Ich möchte meiner Textansicht eine Einschränkung "unterer Bereich zur Übersicht" hinzufügen. Es heißt "Abstand zum nächsten Nachbarn", aber ich möchte keine Einschränkung für "nächster Nachbar" erstellen, ich habe etwas anderes in meiner Textansicht und ich möchte damit keine Einschränkung erstellen. Wenn sich in meiner Textansicht kein anderes Objekt befindet, wird dem Container eine Einschränkung korrekt hinzugefügt. Aber wenn ich versuche, etwas zu ändern, ist alles durcheinander: Ich muss alle Ansichten an einen anderen Ort verschieben, dann die Einschränkung hinzufügen und dann die anderen Ansichten zurück verschieben. Wenn ich eine Einschränkung zwischen der Textansicht und dem UI-Element (in diesem Fall eine Schaltfläche) hinzufüge, funktioniert dies nicht (alles scheint korrekt zu sein: Die Schaltfläche hat eine Einschränkung für den unteren Bereich der Übersicht und die Textansicht hat eine Einschränkung für den vertikalen Abstand mit der Schaltfläche, und es gibt keine widersprüchlichen Einschränkungen). Die Elemente der Benutzeroberfläche werden in unterschiedlichen Bildschirmausrichtungen (3,5 Zoll) außerhalb der Bildschirmgrenzen angezeigt. Gibt es einen Fehler mit dem Interface Builder oder fehlt mir etwas? Wenn ich alles richtig einrichten konnte, scheinen meine Steuerelemente immer noch außerhalb der Grenzen zu sein, wenn ich die Größe der Bildschirme des Interface Builder verändere, aber auf dem Simulator / Gerät bei 3,5 Zoll korrekt angezeigt werde. Was ist die "Best Practice" beim Entwerfen der Benutzeroberfläche mit den neuen Interface Builder-Einschränkungen in Xcode 5?
UPDATE: Ich habe mehr Probleme in einem anderen Projekt mit der gleichen Sache. Ich versuche, die Oberseite einer Ansicht genau an der oberen Layout-Anleitung zu fixieren, indem ich mein Steuerelement bei gedrückter STRG-Taste an die Stelle ziehe, an der "Top-Layout-Anleitung" steht, und ich versuche, die Unterseite meines Steuerelements an die Layout-Anleitung zu binden (um etwa -470) Punkte), anstatt die Oberseite meines Steuerelements anzuordnen, was keinen Sinn ergibt, da sich das Steuerelement in Bildschirmen mit variabler Höhe (z. B. normales iPhone und 4-Zoll-iPhone sowie mögliche andere Layouts in der Zukunft) anordnen sollte. Hier ist ein Screenshot von dem, was passiert:
Und ich bekomme das in Einschränkungen:
Wie kann ich Interface Builder align die oben der Blick auf die Top-Layout Führung?
UPDATE 2: Ich habe eine Problemumgehung gefunden. Ich ändere zuerst die Größe der Ansicht, um ihre Höhe zu verringern (damit sich die Oberseite nicht überlappt oder sehr nahe an der oberen Layoutführung liegt), und ziehe sie dann bei gedrückter STRG-Taste + in die obere Layoutführung. Es scheint richtig zu funktionieren. Nachdem ich es verbunden habe, ändere ich meine Ansicht erneut auf die gewünschte Größe und wähle aus Update Constraints
. Es funktioniert, ist aber immer noch keine Lösung, da die Größe der Ansicht geändert, eine Verbindung hergestellt, die Größe erneut geändert und Einschränkungen aktualisiert werden müssen.
quelle
Antworten:
Um eine Einschränkung zwischen einer Ansicht und ihrer Übersicht hinzuzufügen (z. B. "unterer Bereich zur Übersicht"), können Sie die Dokumentübersicht (der linke Teil des Interface Builder) verwenden.
In der Dokumentübersicht:
quelle
Vertical Space
Einschränkung zwischen demTable View
und demTop Layout Guide
nicht Null oder negativ sein möchte. Folgendes können Sie tun: 1) Bewegen Sie denTable View
Punkt um mindestens 1 Punkt nach unten, sodass er nicht direkt neben dem liegtTop Layout Guide
. 2) Stellen Sie dieVertical Space
Einschränkung zwischenTable View
und einTop Layout Guide
- sie sollte jetzt von oben sein. 3) Bewegen Sie IhrenTable View
Rücken in die Position, die direkt neben dem liegtTop Layout Guide
. 4) Setzen Sie denVertical Space
Wert der Einschränkungen auf Null.Die Antwort von Jarig ist gut, kann aber manchmal zu unerwarteten Ergebnissen führen, wie in den Kommentaren angegeben.
Eine andere Möglichkeit besteht darin, die untergeordnete Ansicht auszuwählen und zu gehen:
Editor> Pin> Top Space to Superview
oder welche Einschränkung Sie wollen.
quelle
Scheint jetzt eine Einschränkung der Unterkante zu sein. Wählen Sie Ihre Ansicht und deren Übersicht aus, tippen Sie auf "Ausrichten" und aktivieren Sie das Kontrollkästchen "Untere Kanten"
quelle
Wenn Sie nachfolgende oder führende Einschränkungen wie in Xcode 4 hinzufügen möchten, ziehen Sie bei gedrückter STRG-Taste aus der Mitte der Ansicht, zu der Sie die Einschränkung hinzufügen möchten, nach links, rechts, oben oder unten. Daraufhin wird ein Fenster angezeigt, in dem Sie die hinzuzufügende Einschränkung auswählen können (abhängig von der Richtung, in die Sie die STRG-Taste gezogen haben).
quelle