Mit iOS 9 und Xcode 7 können Sie jetzt das erwartete Ergebnis mit UIStackView
und nur 3 oder 4 Auto-Layout-Einschränkungen haben.
Die folgende Schritt für Schritt verwendet Storyboard.
- Erstellen 6
UIButton
s und 5 UIView
s. Richten Sie sie horizontal aus. Gib deinen Ansichten etwas Farbe.
- Wählen Sie alle Ihre Ansichten und Schaltflächen und klicken Sie auf die Schaltfläche
Stack
. Sie werden alle Ihre Schaltflächen und farbigen Ansichten in einer UIStackView
ausgerichtet haben.
- Wählen Sie ein Stapelansicht, gehen Sie auf die
Utilities
Panel und wählen Sie das Attributes Inspector
Artikel. Dort klicken Sie auf die Schaltfläche Distribution
und wählen Sie "Fill Equally".
- Vorerst Ihre Stack Ansicht der Höhe auf Tasten intrinsische Inhaltsgröße beruht. Wenn Sie damit einverstanden sind, können Sie mit Schritt 5 fortfahren. Sie können Ihrer Stapelansicht jedoch bei Bedarf eine Höhenbeschränkung zuweisen. Wählen Sie Ihre Stapelansicht, klicken Sie auf die Schaltfläche
Pin
, überprüfen Sie die Height
Schaltfläche, fügen Sie den erforderlichen Wert hinzu und klicken Sie auf die Schaltfläche Add 1 Constraint
.
Als Alternative Wenn Sie jedes Element Ihrer Stapelansicht möchten, um ihre Höhe zu haben, seine Breite übereinstimmt, wählen Sie den ersten Button Ihres Stapelansicht, klicken Sie auf die Pin
Taste, wählen Sie Aspect Ratio
und Klicken Sie auf die Schaltfläche Add 1 Constraint
.
können Sie überprüfen, ob Ihr Seitenverhältnis Einschränkung in Ihrem Document outline
korrekt ist (links), und wenn Sie möchten, können Sie es mit einer anderen Einschränkung in der Attribute inspector
(rechts) ändern.
- Jetzt ist es Zeit, ein paar äußere Zwänge zu Ihrer Stapelansicht zu geben. Wählen Sie Ihre Stapelansicht. Klicken Sie auf die Schaltfläche
pin
, stellen Sie sicher, dass die Schaltfläche Constrain to margin
nicht ausgewählt ist, und setzen Sie die Bedingungen für die führende, die nachstehende und die untere Bedingung auf Null. Stellen Sie sicher, dass sich die untere Einschränkung auf die Ansicht Ihres Ansichtscontrollers bezieht. Ändern Sie dann die Update Frames
Schaltfläche zu "Alle Frames in Container". Sie können jetzt auf die Schaltfläche Add 3 Constraints
klicken.
Ihre Stapelansicht ist nun eingestellt.
Weitere Bemerkung:
Wenn Sie nicht Ihre farbigen Ansichten benötigen Breite Ihre Tasten Breite passen, können Sie mit nur UIButtons
einen Stapel Ansicht bauen und einfach Abstand zu Ihrem Stack-Ansicht in die Attribute inspector
. Sie müssen jedoch eine Möglichkeit finden, hinter der Stapelansicht eine Hintergrundfarbe hinzuzufügen. Apple schreibt dazu in der UIKit Framework Reference:
Die UIStackView ist eine nonrendering Unterklasse von UIView. Es stellt keine eigene Benutzeroberfläche zur Verfügung. Stattdessen verwaltet es nur die Position und Größe seiner angeordneten Ansichten. Daher haben einige Eigenschaften (wie backgroundColor) keine Auswirkungen auf die Stapelansicht.
Ich habe ein Xcode-Projekt mit 4 verschiedenen Stapeln Ansichten bauen:
- eines mit farbigen Ansichten und seine Höhe auf der eingebetteten
UIButton
intrinsischen Inhalt Größe verlassen,
- eine mit farbigen Ansichten und mit einer
UIButton
"gleiche Breite und Höhe" Nebenbedingung,
- eins mit farbigen Ansichten und mit einer eigenen Höhenbeschränkung,
- eine ohne farbige Ansichten, aber mit Abstand und eingebettet in einer farbigen Ansicht.
Sie können dieses Projekt auf dieser GitHub repo finden.
Vielen Dank für Ihre Hilfe. Ich brauche eine Klarstellung. Haben Sie 5 Ansichten zwischen den Tasten (1-6) hinzugefügt? –
Vielen Dank für Ihre Hilfe. Es funktioniert .. :) –
Sie sind herzlich willkommen ... glücklich, Ihnen zu helfen ... :) –