2012-08-22 18 views
7

Ho NSMutableAttributedString e la stringa è piuttosto lunga. Mi piacerebbe fare il wrap di parole mentre lo mostro sulla UIlabel. Se fosse NSString, andrò avanti e fare qualcosa del genere, Dynamic UILabel truncating the text Ma come posso farlo con NSAttributedString? E una volta fatto, ho bisogno di ridimensionare la vista a seconda delle dimensioni dell'etichetta.Word wrap per NSMutableAttributedString

+0

Hey kBpro è il mio answser utile a voi. Se sì, accettalo. – python

risposta

5

La proprietà lineBreakMode non è deprecata in iOS 6. Ha semplicemente modificato i nomi delle costanti. Le vecchie costanti sono deprecate, ma ancora disponibili. Puoi usare le nuove costanti anche se stai distribuendo su un iOS più vecchio, perché le costanti sono solo valori di enum. I vecchi nomi e i nuovi nomi hanno gli stessi valori. Quindi, imposta yourlabelname.lineBreakMode = NSLineBreakByTruncatingTail.

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 
[paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; 
[attributedStr addAttribute:NSParagraphStyleAttributeName 
        value:paragraphStyle 
        range:NSMakeRange(0,[attributedStr length])]; 
0

In seguito funziona anche indipendentemente dall'uso di Testo attribuito o normale. Assicurati di aggiungere la riga sottostante dopo aver impostato AttributesedText e font sull'etichetta.

label.lineBreakMode = .byTruncatingTail