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.
Problemi correlati
- 1. Multi-line NSAribributoStringa con testo troncato
- 2. NSAribributoStringa multilinea che fornisce un'altezza errata?
- 3. Schede verticali con JQuery?
- 4. Schede nidificate con angularjs
- 5. NSKernAttributeName spazio alla fine della riga in una NSAribributoStringa
- 6. Schede di avvio con AngularJS
- 7. Aprire nuove schede con AngularJS
- 8. Schede jQuery con contenuto MVC
- 9. Salvataggio Excel CSV con schede
- 10. Come ottenere schede intelligenti (comportamento "rientro con schede, allineamento con spazi") in Xcode?
- 11. API Trello: ottenere informazioni schede/liste/schede
- 12. Aggiungi pulsanti all'area schede e schede JavaFX
- 13. Problema con numberOfViewsInSession e più schede
- 14. Cambia visualizzazione con schede in Polimero 1.0
- 15. Schede verticali Bootstrap con interfaccia utente angolare
- 16. Mostra schede con un carattere diverso (Emacs)
- 17. Inserire schede con .join in python
- 18. più schede con tmux/tmuxinator e iTerm2
- 19. Common.Logging con più schede di fabbrica
- 20. Schede ActionBar con libreria di supporto
- 21. modifica location.hash con le schede ui jquery
- 22. Aggiungere le schede a sinistra con FragmentPagerAdapter
- 23. È possibile csv con più schede/fogli?
- 24. AngularJS in conflitto con le schede Bootstrap
- 25. Vim: rientro con le schede, allineare con spazi
- 26. Android: come creare un'app complessa con schede con viste
- 27. Tab Schede OSX/Windows
- 28. Eliminare le schede quando si utilizzano le schede come spazi
- 29. Differenza tra $ ('# schede a') e $ ('# schede'). Find ('a')
- 30. Actionbarsherlock + schede + multi frammenti?
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