Ho una vista tabella e una cella al suo interno. La cella contiene tre etichette: l'etichetta dell'intestazione e due etichette sotto l'una rispetto all'altra. A volte, ho bisogno di nascondere quelle due etichette qui sotto se non contengono dati e cambiare "Spazio superiore al contenitore" di "Etichetta intestazione" a "Centro Y al contenitore". E naturalmente ripristinare i vincoli quando due etichette contengono dati. Ecco uno screenshot di semplice progetto demo solo per mostrare l'idea:Come modificare i vincoli dell'etichetta durante il runtime?
UPDATE Max MacLeod risposta indicò direzione giusta. Il trucco è spingere l'etichetta dell'intestazione verso il basso quando la prima e la seconda etichetta sono nascoste. Pertanto, dobbiamo impostare lo spazio inferiore alla vista contenitore per la prima e la seconda etichetta invece di creare lo spazio superiore alla vista contenitore per l'etichetta dell'intestazione. E nascondere/nascondere deve essere fatto avendo prese di altezza (vincoli di altezza per la prima e la seconda etichetta) e impostando i loro valori costanti a zero (e impostando il valore di ritorno quando si sceglia). Ho anche caricato il source code example to Github.
Cosa intendi con "aggiungi un nuovo vincolo per fare in modo che l'etichetta dell'intestazione abbia uno spazio verticale". Che tipo di vincolo dovrebbe essere? Ho già intinto le etichette inferiori con l'etichetta dell'intestazione per il vincolo dello spazio verticale. – Centurion
Se rimuovo il vincolo "Spazio superiore al contenitore", IB mostra gli errori con "Necessità del vincolo per la posizione Y" – Centurion
sì, prima devi dargli il nuovo vincolo e quindi aggiungere il vecchio - ora superfluo - vecchio. IB non consentirà l'ambiguità –