Come si crea un UILabel
con questo tipo di formato di testo? Useresti NSAttributedString?NSAribributoStringa con schede
6
A
risposta
16
NSAttributedString in grado di creare colonne di testo con tabulazioni. Questo è simile a come è fatto in un word processor con le stesse limitazioni.
let text = "Name\t: Johny\nGender\t: Male\nAge\t: 25\nFavourites\t: Reading, writing"
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.tabStops = [NSTextTab(textAlignment: NSTextAlignment.Left, location: 150, options: [:])]
paragraphStyle.headIndent = 150
label.attributedText = NSAttributedString(string: text, attributes: [NSParagraphStyleAttributeName: paragraphStyle])
tabStops
fornisce posizioni dei punti su dove continuare testo dopo ciascuna scheda. Qui abbiamo fatto una scheda in un punto ragionevole dopo la prima colonna. headIndent
indica all'etichetta che il testo avvolto deve essere rientrato di una quantità fissa, quindi viene spostato sulla riga successiva.
I limiti di questo approccio sono:
- La scheda posizione di arresto è un valore punto fisso quindi è necessario sapere cosa si vuole. Se il valore scelto è inferiore alla larghezza della prima colonna per alcune linee, quelle linee verranno indentate in un'altra posizione.
- Il wrapping funziona solo se l'ultima colonna è quella che avvolge. Poiché la seconda colonna è stata preceduta da ":" Potresti voler aumentare il numero
headIndent
o anche dividere ":" per\t:\t
e impostare un secondo punto di tabulazione. Se non stai lasciando passare il testo, questo non è un problema.
Se queste limitazioni sono troppo restrittive, è possibile ristrutturare l'etichetta in modo che sia una raccolta di più etichette con vincoli di layout automatico.
http://stackoverflow.com/questions/6699930/how-can-i-use-the-t-tab-operator-to-format-a-nsstring-in-columns – Mattias
Questo è più a che fare con il layout che attributi di carattere, quindi non penso che sia qualcosa che è appropriato per 'NSAttributedString'. – trojanfoe
Si dovrebbe esaminare l'uso dei vincoli di layout. – WMios