2017-04-16 1 views
0

Ich habe einen horizontalen Stapel mit drei Kontrollen. Die ersten zwei (grün und orange in der Abbildung unten) basieren auf IB_DESIGNABLEUIView Klassen. Innerhalb dieser Klassen gibt es keine width Beschränkungen in Bezug auf die Breite, die diese Steuerelemente haben müssen. Die dritte Ansicht ist eine reguläre UIView.Wie man Kontrollen herstellt, besetzen die reale Größe innerhalb eines Stapels

enter image description here

Diese Kontrollen haben mehrere Tasten. Die Schaltflächen stellen Werte für Konfigurationen dar. Sie sind Optionsfelder, mit denen der Benutzer eine bestimmte Konfiguration zwischen mehreren auswählen kann. Da diese Tasten mehrere Male benutzt werden, kann eine bestimmte Konfiguration nur 4 Optionen haben, so dass ich 3 Tasten verstecken muss, in anderen Fällen 2 und so weiter.

Diese IB_DESIGNABLE Klassen basieren auf XIB s. Die Buttons befinden sich innerhalb von horizontalen Stapeln innerhalb dieser XIB s.

Dies ist das Problem. Angenommen, ich muss 2 Knöpfe auf dem grünen verstecken. Da sich beide in einem horizontalen Stapel befinden und sich ihre Schaltflächen ebenfalls in einem horizontalen Stapel befinden, möchte ich, wenn ich eine oder mehrere Schaltflächen ausgeblendet habe, die Breite des Steuerelements reduzieren.

In diesem Fall durch zwei Tasten des grünen verstecken mag ich das Ganze wie

enter image description here

gemacht werden, aber es ist nicht. Es wird gemacht wie

enter image description here

HINWEIS: Wenn die Kontrollen Vertrag ich die dritte Ansicht benötigen den verbleibenden Platz zu besetzen. Ich benutze diese Ansicht, um die Steuerelemente nach links zu zwingen, weil ich das nicht nur mit dem Stack tun konnte, die immer versuchten, das Ganze zu erweitern.

Keine dieser 3 Ansichten haben Einschränkungen.

Die Tasten innerhalb der XIB haben horizontale Constraints der Breite, aber sie eine Priorität von 750 anstelle von 1000.

Der Stapel, der die Bedienelemente hält verwendet horizontal ist, füllen, füllen, Abstand 20 Der Stapel, hält die Tasten in der Xib ist horizontal, füllen, füllen, Abstand 0.

Irgendwelche Ideen?

Antwort

1

Wie verstecken Sie die Tasten? Von isHidden = wahr? Dann ist das der Grund. Autolayout ignoriert den versteckten Status. Die Knöpfe sind immer noch da. Sie müssen auch die Einschränkungen der Schaltflächen deaktivieren/ändern. z.B. Setzen Sie die Breitenbeschränkung der Schaltflächen auf 0.

+0

BRILLIANT! VIELEN DANK!!!!!!! – SpaceDog

Verwandte Themen