2015-01-04 7 views

risposta

34

si può fare questo per impostare a livello di codice

label.lineBreakMode = NSLineBreakMode.ByWordWrapping 
label.numberOfLines = 3 

Swift 3/4

label.lineBreakMode = .byWordWrapping 
label.numberOfLines = 3 
+1

Non c'è molto motivo per impostare il numero di linee su 1 se si desidera avvolgere il testo. – rmaddy

+2

Stavo solo dimostrando come cambiarlo. – rakeshbs

+0

Come farlo dinamicamente in base alla lunghezza del testo? –

16

Se si desidera che l'etichetta di avere più righe, fare questo:

var myLabel:UILabel = UILabel(frame: CGRectMake(7, 200, 370, 100)) 
myLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping 
myLabel.numberOfLines = 0      //'0' means infinite number of lines 

Ricordarsi di aumentare l'altezza in "CGRectMake (7, 200, 370, 100 )"         < - Questo
Altrimenti l'etichetta non sarà in grado di prendere le più righe di testo.

+1

Anche se ho segnato sopra come risposta giusta perché è quello di cui avevo bisogno. Questo è 'raccomandato' per i layout automatici e l'altezza dinamica. – tika

+0

Concordato! E per quanto possibile, le esigenze dinamiche dovrebbero essere sempre incorporate! – Zoran777

+0

È necessario creare l'etichetta sempre in modo programmatico? – JCarlos

1

Nota con Swift 3 è necessario utilizzare il metodo aggiornato byWordWrapping

productNameLabel.lineBreakMode = .byWordWrapping 
productNameLabel.numberOfLines = 1 

enter image description here


o per l'aggiunta di Ellipsis presso l'uso finale byTruncatingTail

productNameLabel.lineBreakMode = .byTruncatingTail 
productNameLabel.numberOfLines = 1 

enter image description here

+0

plz guarda qui per la mia domanda https://stackoverflow.com/questions/46723070/label-disappear-when-changing-font-size-to-25-in-swift –

Problemi correlati