Ich habe ein bisschen mit visuellen Einschränkungen in meiner iOS App zu kämpfen.Visual Constraints mit versteckten Ansichten
Ich habe vier UIViews. Man ist immer die „Header“ oder Draufsicht, und die anderen drei abwechselnd sichtbar darunter ist, wie folgt:
+-------------------+
| HeaderView |
+-------------------+
| View2|View3|View4 |
+-------------------+
Nur einer von View2, View3 oder View4 zu einem Zeitpunkt, zu sehen ist, und die andere sind versteckt, wenn sie nicht benutzt werden.
nun mit regulären NSLayoutConstraints
, ich bin in der Lage, es zu bekommen arbeiten wirklich gut:
- Alle Ansichten haben Einschränkungen für Führende und Marge Nachgestellte den Host-super-Ansicht übereinstimmen.
- HeaderView hat TopMargin, um Host-Super-View zu entsprechen.
- Alle Ansichten haben Einschränkungen für ihre Höhe. HeaderView ist 100 und View2, View3 und View4 sind 25, 50 und 75.
- View2, View3 und View4 haben alle Einschränkungen, die ihre obere Ebene auf HeaderView Bottom setzen.
- (I jede Unterseite für View2 begrenzt nicht kümmern, View3 oder View4 -. Ihre Höhen befestigt sind, und leerer Raum unter ihnen wird an anderer Stelle verwaltet)
Also, ich versuche zu konvertieren dies zu visuellen Einschränkungen. Hier ist, was ich bisher für horizontale Beschränkungen haben und es ist toll:
@"H:|-0-[HeaderView]-0-|"
@"H:|-0-[View2]-0-|"
@"H:|-0-[View3]-0-|"
@"H:|-0-[View4]-0-|"
Nun vertikale Beschränkungen sind, wo ich in Schwierigkeiten geraten:
Ich habe versucht, die folgenden:
@"V:|-0-[HeaderView(100)]-0-[View2(25)]-0-[View3(50)]-0-[View4(75)]"
Und ich habe auch versucht, Splitting, dass bis:
@"V:|-0-[HeaderView(100)-0-[View2(25)]"
@"V:|-0-[HeaderView(100)-0-[View2(50)]"
@"V:|-0-[HeaderView(100)-0-[View2(75)]"
Nun, das Problem ist, dass das vertikale Layout ist nie richtig - fast immer, View2, View3 oder View4 liegen direkt über HeaderView, nicht darunter.
Irgendwelche Vorschläge, wie Sie dies beheben und meine vertikalen Layouts korrigieren können?
(100 shouldnt es sein (100) Kumpel ??? –
Ja, das Tippfehler war !! Dank für Vorschlag .. :) – Lion
Eine weitere Zweifel :) Arent bewerben Sie alle die 25 30 75 Höhenbeschränkung auf sameView View2, wenn die Anforderung war, es für View1, View2 und View 3 anzuwenden :) Ich weiß, dass das der Teil seiner Frage war, aber das ist falsch, nicht wahr :) Der Effekt ist, dass die Höhe von View2 sein wird 75 wo wie andere Höhe wird implizit so auf 0 gesetzt :) –