Mitte zwei Ansichten vertikal mit NSLayoutConstraint

Stellen Sie sich das folgende Szenario. Sie haben eine UIImageView und einen UIButton. Die erste ist 300x360, die zweite ist 210x70. Die imageview enthält einen Katalog Bild, das button sagt "Katalog öffnen".

Ich würde gerne die position der Elemente in der Hauptansicht, die nach diesen Anforderungen:

  • die beiden Elemente werden horizontal zentriert, nämlich in der Mitte.x-Koordinaten sollten alle gleich (Blick, Bild und button);
  • die beiden Elemente werden vertikal zentriert in der folgenden Weise: separator (flexibel) - Bildansicht - separator (fixed, sagen wir, 30 pts) - button - separator (flexibel). Dem obersten und dem untersten separator sollte die gleiche Größe besitzen (dies ist die Bedeutung von,, zentriert).

Kann ich nicht machen dies, um die Arbeit mit NSLayoutConstraint.

So weit, was ich Tat, wurde die Zentrierung der X-Koordinate der beiden Elemente mit NSLayoutAttributeCenterX und NSLayoutRelationEqual den gleichen view Attribut.

Den letzten Teil, nach meiner Idee, zu befestigen Ihre vertikale Ausrichtung.
Ich habe versucht, mit @"V:|-[imageview(360)]-[button(70)]-|" aber es funktioniert nicht (Unable to simultaneously satisfy constraints.).

Wenn ich @"V:|-[imageview(360)]-[button]-|" ich alles bekommen, was teilweise ok. Nämlich, der Obere Teil ist perfekt, aber der button ist gestreckt, so dass die Lücke zwischen den internen separator und dem unteren Rand der Ansicht.

Wie kann ich diese Elemente mit fester Größe und lassen Sie Auto-layout, um nur herauszufinden, wie man Sie in den Blick?

In iOS 9, Blick auf UIStackView und UILayoutGuide für die Lösung dieser Art von Problemen.

InformationsquelleAutor Fabiano Francesconi | 2013-06-25

Schreibe einen Kommentar