Fügen Sie der Übersicht in Xcode 5 eine Abstandsbeschränkung hinzu

74

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:

Geben Sie hier die Bildbeschreibung ein

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:

Geben Sie hier die Bildbeschreibung ein

Und ich bekomme das in Einschränkungen:

Geben Sie hier die Bildbeschreibung ein

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.

Kann Poyrazoğlu
quelle
Hallo, habe den gleichen Fehler wie Sie, wenn Sie eine Ansicht mit dem Top Layout Guide verbinden. Es hat mich anfangs sehr verwirrt, aber die gleiche Problemumgehung wie Sie gefunden. Hoffentlich wird dies in zukünftigen Updates behoben ...
Taum
Ich hoffe es. Traurig zu sehen, dass ein Unternehmen, das sich wirklich für Design interessiert, Designfehler in seinem eigenen Produkt hat, das für das Design von Kernschnittstellen verwendet wird.
Kann Poyrazoğlu
Diese Problemumgehung funktioniert!
Leszek Zarna

Antworten:

94

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:

  1. Halten Sie die Strg-Taste gedrückt und ziehen Sie von der Ansicht in die Übersicht (oder umgekehrt).
  2. Wählen Sie die Einschränkungen aus, die Sie hinzufügen möchten (in diesem Beispiel "Bottom Space to Container").

Ziehen Sie bei gedrückter Strg-Taste von der Ansicht in die Übersicht (oder umgekehrt). Wählen Sie die Einschränkungen aus, die Sie hinzufügen möchten

Jarig
quelle
Würde das auch funktionieren, wenn Sie eine Einschränkung zwischen einer Schaltfläche in einer Ansicht und einer Registerkartenleiste unterhalb der Ansicht festlegen möchten (vorausgesetzt, die Ansicht der Schaltfläche ist in einem Registerkartenleisten-Controller enthalten)?
AlexR
1
Wenn Sie eine Einschränkung zwischen einer Schaltfläche und einer Registerkartenleiste festlegen möchten, können Sie die Dokumentübersicht bei gedrückter Strg-Taste von der Schaltfläche in das untere Layout-Handbuch ziehen.
Jarig
4
Immer wenn ich versuche, eine Einschränkung wie "Top Space to Top Layout Guide" wie diese hinzuzufügen, wird daraus eine Einschränkung "Bottom Space to Top Layout" mit einem großen negativen Wert. Ist das ein Xcode-Fehler oder mache ich etwas falsch?
Bugloaf
3
Ich habe gerade mein eigenes Problem herausgefunden. Die Ansicht befand sich über der Layout-Anleitung (da sie von iOS 6 stammte), daher versuchte xcode, klug zu sein, anstatt das zu tun, was es versprochen hatte. Die Lösung bestand darin, alles auszuwählen und unter die Layout-Anleitung zu ziehen, obwohl ich versucht habe, Xcode dazu zu bringen, dies automatisch zu tun.
Bugloaf
3
Sieht so aus, als ob die Vertical SpaceEinschränkung zwischen dem Table Viewund dem Top Layout Guidenicht Null oder negativ sein möchte. Folgendes können Sie tun: 1) Bewegen Sie den Table ViewPunkt um mindestens 1 Punkt nach unten, sodass er nicht direkt neben dem liegt Top Layout Guide. 2) Stellen Sie die Vertical SpaceEinschränkung zwischen Table Viewund ein Top Layout Guide- sie sollte jetzt von oben sein. 3) Bewegen Sie Ihren Table ViewRücken in die Position, die direkt neben dem liegt Top Layout Guide. 4) Setzen Sie den Vertical SpaceWert der Einschränkungen auf Null.
Jarig
48

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.

kball
quelle
7
Dies ist besonders nützlich zu wissen, da beim Versuch, die gleichen Ergebnisse aus den Kontextmenüs zu erzielen, oder beim Ziehen von Steuerelementen niemals die Option "Top Space to Superview" angezeigt wird. Es handelt sich immer um "Top Space to Top Layout Guide" (Xcode51DP)
Levigroker
7
Danke dafür. Wie oben direkt erwähnt, scheint Xcode, wenn Ihre übergeordnete Ansicht die Ansicht für Ihren Ansichtscontroller ist, nur den "Top Space to Top Layout Guide" zu geben, was nicht immer das ist, was Sie wollen. Insbesondere bei Steuerelementen, die automatisch den oberen Layoutbereich berücksichtigen.
Michael McGuire
Danke für das alternative Menü. Es gibt drei Möglichkeiten, Einschränkungen zu erstellen, und sie haben nicht alle Parität.
Paul Solt
Es ist in meinem Projekt deaktiviert, was kann ich tun
Codercat
1
VIELEN DANK. Ich habe viel Zeit damit verschwendet, den Einschub der tableView zu reparieren. Ich wusste, dass ich den oberen Bereich für die Übersicht festlegen musste. Aber alle anderen Möglichkeiten wurden deaktiviert. Du hast meine Nacht gerettet, jetzt kann ich schlafen gehen.
MIWMIB
1

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"

Bild

Epolyakov
quelle
1
es deaktivieren Modus, was kann ich tun
Codercat
0

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).

AlexR
quelle