2016-05-13 66 views
7

Sto usando ContextLabel per analizzare @, # e gli URL. Questa è la soluzione migliore che ho trovato, perché le dimensioni sono corrette e non influenzano le prestazioni. Analizza dapprima la stringa in ingresso e la converte in NSAttributedString e successivamente la assegna a attributedText proprietà di UILabel. Tutto funziona come previsto, ad eccezione di coda troncamento - è molto scorretta (vedi foto sotto)NSAttributedString troncamento coda in UILabel

enter image description here

Dove devo iniziare a scavare - è attributi sbagliate sulla stringa attribuito? O problema di layout delle etichette? Grazie!

+0

Stai codifica rigidi la larghezza di questa etichetta? – Feroz

risposta

14

Ho avuto questo problema e fissato con l'aggiunta di un NSParagraphStyle specificando la modalità di interruzione linea desiderata:

//assuming myString is an NSMutableAttributedString 
    let paragraphStyle = NSMutableParagraphStyle() 
    paragraphStyle.lineBreakMode = .byTruncatingTail 

    let range = NSRange(location: 0, length: myString.mutableString.length) 
    myString.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: range) 

Vedi Word wrap for NSMutableAttributedString per ulteriore riferimento.

0

In seguito funziona anche indipendentemente dall'utilizzo di AttributedText o testo normale.
Assicurarsi di aggiungere la riga seguente dopo aver impostato l'AttributedText e carattere per l'etichetta:

label.lineBreakMode = .byTruncatingTail