2013-06-01 15 views
5

ist Mein Problem ist die Verwendung von automatischem Layout (die berühmten) bezogen).Autolayout, wie die Ersetzung einer Unteransicht unterstützt wird?)</p> <p>I 2 Situationen Subviews im <em>gleichen View-Controller verwalten möchte</em> so, dass ich von einer Situation zum anderen gehen kann (und umgekehrt;

Lassen Sie mich das Problem mit dem folgende Diagramm vorstellen:

Diagram of the same view controller in the 2 situations

Das Problem ist, dass ich kann nicht verstehen, wie die automatische Layout Einschränkungen im Interface Builder zum Ausdruck bringen, so dass ich einfach von einer Situation wechseln zum anderen. Um genauer zu sein, sind die Subviews VIEW_B1 und VIEW_B2 verschiedene Subviews mit unterschiedlicher Höhe.

Ich versuche bereits, die Unteransicht zu verbergen, die ich nicht sehen möchte (entweder VIEW_B1 oder VIEW_B2), aber in diesem Fall bleibt VIEW_C an seiner Y-Position. Was ich möchte, dass VIEW_C der VIEW_B * ist (der nicht ausgeblendete).

Antwort

2

Durch das Ausblenden der Ansicht werden die Einschränkungen nicht entfernt. Sie müssen die Ansicht B1 aus ihrer Superansicht entfernen, B2 einfügen und dann die Einschränkungen B2 um die Ansichten darüber und darunter hinzufügen.

Wenn Sie die Ansicht nicht vollständig entfernen möchten, können Sie die Abhängigkeiten, die jede B * -Ansicht mit den Ansichten darüber und darunter verbinden, in Eigenschaften speichern und dann die entsprechenden Ansichten entfernen und hinzufügen, wenn Sie die Ansichten wechseln Einschränkungen für die Superview.