Autolayout: Einschränkung zur Übersicht hinzufügen und nicht zum Top-Layout-Handbuch?


112

Ich habe ein UIView in meinem UIViewController im Storyboard, dem ich eine Einschränkung für den Raum hinzufügen möchte, der einen Abstand vom oberen Rand anzeigt.

Wenn ich jetzt das Übliche mit Strg + Ziehen in die Hauptansicht des ViewControllers mache, bekomme ich nur die Option, es auf die oberste Layout-Anleitung zu setzen.

Dies ist ein Problem für mich, da ich an einem Punkt in der App die Hauptansicht um etwa 20-50 Pixel nach oben verschieben werde und dann die Ansicht, die ich habe, nicht verschoben wird ... weil sie nicht auf die Übersicht ausgerichtet ist.

Wie kann ich dies manuell im Storyboard tun oder muss ich es programmgesteuert hinzufügen?

Ich benutze Xcode 6.


Können Sie die richtige Entität in der Dokumentkontur links ziehen und ablegen? - Szenenobjekte
Woodstock

Ich habe das auch versucht, das gleiche Ergebnis
Arbitur

Antworten:


306

Rechts neben dem Wert der Einschränkungskonstante befindet sich ein Pfeil. Wenn Sie darauf klicken, wird ein Menü angezeigt, in dem Sie auswählen können, auf was Sie Ihre Einschränkung relativieren möchten. Wenn Sie "Ansicht" wählen, wird es oben in der Ansicht angeheftet.

Geben Sie hier die Bildbeschreibung ein


6
Halleluja! Ich wusste nicht, was ich tun würde, als das Menü Editor -> Pin entfernt wurde.
Jeremy Hicks

4
Ich kann nicht glauben, dass ich das vorher nicht gesehen habe. Genial.
Zumzum

9
Nur eine Anmerkung für Leute, die so ahnungslos sind wie ich -> Sie können diese Änderung möglicherweise nur vornehmen, wenn sich die Ansicht, zu der Sie die Einschränkung hinzufügen, unter der obersten Layoutanleitung befindet. Ich hatte einen Blick über die obere Layout-Anleitung und "Top-Layout-Anleitung" war keine Option im Dropdown-Menü. Welches ist wahrscheinlich eine "duh" Aussage für Nicht-Neulinge wie mich :)
Ryan James

2
Es geht um diese kleinen Xcode-Feinheiten. Das macht so viel. :)
März

Nur eine kurze Klarstellung, die mich verwirrte: Obwohl das Bild mit dem Top Layout Guide angekreuzt ist, wählen Sie "Ansicht", wenn Sie die Ansicht wie ganz oben auf dem Gerät an der Oberseite der Ansicht anheften möchten.
Micnguyen

57

Sie sollten dies tun können, indem Sie die gewünschte Ansicht im Storyboard markieren und dann Editor > Pin > Top Space to Superviewim oberen Menü auswählen .


Dies ist in XCode 7 veraltet, siehe stattdessen die Antwort von @ PaulGurov.


Funktioniert wie ein Zauber - XCode 6.3
NKorotkov

4
Sie haben 'Pin' aus dem Editor-Menü in Xcode 7 entfernt. Gibt es neue Lösungen?
Kyle G

14

TL; DR: Sie können den Rand einschränken, indem Sie die AltTaste auf der Tastatur drücken .


Man kann auch hinzufügen, dass der vorgeschlagene Ansatz nicht wirklich gültig ist, wenn die Ansicht, die Sie anheften möchten, keine direkte Unteransicht der Ansicht ist, an die Sie sie anheften möchten. Angenommen, die Ansichtshierarchie sieht so aus und Sie möchten die Bildansicht ( Parallax Image Viewin diesem Fall) an die Ansicht des Ansichtscontrollers ( Viewin diesem Fall) anheften.

Geben Sie hier die Bildbeschreibung ein

Dazu machst du einfach Control+ Dragvon der Parallax Image Viewzur View. Hier werden die Standardoptionen angezeigt, bei denen Sie sehen können, Vertical Spacing to Top Layout Guidewie Sie die Parallax Image Viewan die obere Layout-Anleitung anheften.

Geben Sie hier die Bildbeschreibung ein

Sie möchten es am oberen Rand der Ansicht anheften. Dazu müssen Sie durch Drücken zu den anderen Einschränkungen wechselnAlt

Geben Sie hier die Bildbeschreibung ein


Sehr nützlicher Tipp. Dies hat mein Problem tatsächlich gelöst.
Machado

Es funktioniert für mich, aber ich weiß nicht, wie ich mehrere Einschränkungen gleichzeitig hinzufügen kann. Jetzt muss ich eins nach dem anderen hinzufügen, um mir Zeit zu nehmen.
Duc Nguyen

3

Ich hatte bereits eine ganze Reihe von Einschränkungen und wollte sie nur ändern, anstatt sie zu brechen. Wenn Sie auf die zu bearbeitende Einschränkung doppelklicken und dann auf das Element mit der ".Margin" klicken, können Sie das "Relative to Margin" einfach deaktivieren, indem Sie dieses Element auswählen.

Wählen Sie den relativen Rand aus


Das war es, wonach ich gesucht habe, als ich hierher kam! Danke
Netigger

1

Dans Antwort funktioniert. Ich wollte nur sagen, dass, wenn Sie Ihre Ansicht in storyBoard auf y <20 setzen und Einschränkungen über das Pin-Panel konfigurieren, die Ansicht oben angezeigt wird:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


0

Wenn die Höhe der Ansicht versehentlich auf 0 gesetzt wurde, wird die Anleitung für den vertikalen Abstand zum oberen Layout NICHT angezeigt. Es wird jedoch eine Anleitung zum vertikalen Abstand von unten nach unten angezeigt, die für jemanden in Apple um 2004 sinnvoll gewesen sein muss.


0

Keine der oben genannten Antworten hat bei mir funktioniert, stattdessen muss ich einen Hack ausführen, um das Top meiner Unteransicht mit dem Top von Superview anstatt mit dem Top Layout Guide zu setzen.

  • Stellen Sie zunächst die Mitte der Unteransicht vertikal mit der Übersicht ein.
  • Ändern Sie dann die Center Y- Einschränkungen für die Unteransicht sowie die Übersicht in die Top- Einschränkung.

Du bist jetzt gut zu gehen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.