Ho bisogno di allineare le linee di base del testo in UILabels. Quello che sto facendo è che sto allineando le linee di base di UILabels che contengono il testo e quando la dimensione del carattere del testo in due etichette è diversa, questo si traduce in linea di base UILabels allineata ma linea di testo disallineata (disallineato da un piccolo margine, ma ancora disallineata). Le etichette sono incluse in una sottoclasse UIView personalizzata, pertanto self
si riferisce alla UIView che comprende.Come allineare le linee di base del testo in UILabels con diverse dimensioni di carattere su iOS?
Ecco il codice relativo
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
self.mySmallLabel.frame = CGRectMake(0,
self.bounds.size.height - self.mySmallLabel.bounds.size.height,
self.mySmallLabel.bounds.size.width,
self.mySmallLabel.bounds.size.height);
self.myBigLabel.frame = CGRectMake(self.mySmallLabel.frame.origin.x + self.mySmallLabel.bounds.size.width,
self.bounds.size.height - self.myBigLabel.bounds.size.height,
self.myBigLabel.bounds.size.width,
self.myBigLabel.bounds.size.height);
[self.mySmallLabel sizeToFit];
[self.myBigLabel sizeToFit];
risultati questo codice di allineamento nell'immagine link sottostante.
Come si può vedere, anche se le linee di base UILabel sono allineati, le linee di base del testo è disallineata da un piccolo margine. Come posso allineare le linee di base del testo in modo dinamico (perché le dimensioni dei caratteri potrebbero cambiare in fase di runtime)?
Qualsiasi versione che utilizza il layout automatico? – adib
La versione del layout automatico è semplice: basta allineare due etichette con 'NSLayoutAttributeBaseline' (o' NSLayoutAttributeLastBaseline' o 'NSLayoutAttributeFirstBaseline', a seconda di cosa stai andando). –