ho creato un controller della vista che assomiglia a questo:multilinea UIButton e AutoLayout
Voglio che i due top pulsanti di avere sempre 20 punti tra loro e la sinistra/bordi destro di tutta la vista . Dovrebbero sempre avere la stessa larghezza. Ho creato i vincoli per tutto questo e funziona esattamente come voglio. Il problema sono i vincoli verticali. I pulsanti dovrebbero sempre essere 20 punti sotto il bordo superiore. Dovrebbero avere la stessa altezza. Tuttavia, AutoLayout non rispetta che l'etichetta sinistra ha bisogno di due linee per adattarsi a tutti i suoi testi, quindi il risultato è simile al seguente:
voglio farlo sembrare come nella prima immagine. Non posso aggiungere vincoli di altezza costanti ai pulsanti perché quando l'app viene eseguita su iPad, è necessaria solo una linea e sarebbe quindi inutile avere uno spazio aggiuntivo.
In viewDidLoad
ho provato questo:
- (void)viewDidLoad
{
[super viewDidLoad];
self.leftButton.titleLabel.preferredMaxLayoutWidth = (self.view.frame.size.width - 20.0 * 3)/2.0;
self.rightButton.titleLabel.preferredMaxLayoutWidth = (self.view.frame.size.width - 20.0 * 3)/2.0;
}
Ma questo non cambiava anyhting affatto.
La domanda: come faccio a rispettare l'autolayout se il pulsante sinistro richiede due righe?
potrebbe sii perché hai il vincolo "stessa altezza" sul tasto sinistro. Questo renderà la stessa altezza degli altri pulsanti, cambiando la dimensione del contenuto all'interno del pulsante – user2277872
Ho provato a rimuovere il vincolo "stessa altezza" ma non ha funzionato. –
Hai provato ad aggiungere> = vincoli alle etichette per stabilire un valore minimo? – jaggedcow