2014-12-29 12 views
5

Vorrei aggiungere una stringa al mio UITextView e vorrei che alcuni fossero in grassetto e alcuni in carattere normale. Come dovrebbe farlo? Ho un esempio di ciò che vorrei ottenere di seguito.UITextView contiene una stringa grassetto e normale

Grazie

myTextView.text = "This is my string. " 

Questo è mia stringa.

Di seguito sono riportati i tentativi che ho effettuato.

// Define string attributes 
    let font = UIFont(name: "Georgia", size: 18.0) ?? UIFont.systemFontOfSize(18.0) 
    let textFont = [NSFontAttributeName:font] 

    let fontItal = UIFont(name: "Georgia-Italic", size: 40.0) ?? UIFont.systemFontOfSize(40.0) 
    let italFont = [NSFontAttributeName:fontItal] 

    // Create a string that will be our paragraph 
    let para = NSMutableAttributedString() 

    // Create locally formatted strings 
    let attrString1 = NSAttributedString(string: "This is ", attributes:textFont) 
    let attrString2 = NSAttributedString(string: "my", attributes:italFont) 
    let attrString3 = NSAttributedString(string: " string.", attributes:textFont) 

    // Add locally formatted strings to paragraph 
    para.appendAttributedString(attrString1) 
    para.appendAttributedString(attrString2) 
    para.appendAttributedString(attrString3) 

    // Define paragraph styling 
    let paraStyle = NSMutableParagraphStyle() 
    paraStyle.firstLineHeadIndent = 15.0 
    paraStyle.paragraphSpacingBefore = 10.0 

    // Apply paragraph styles to paragraph 
    para.addAttribute(NSParagraphStyleAttributeName, value: paraStyle, range: NSRange(location: 0,length: para.length)) 


    // Add string to UITextView 

    myTextView.attributedText = para 
+0

Si prega di mostrare i tentativi che già effettuati a risolvere il problema. –

+0

Aggiunto il codice sopra. Grazie –

+1

OK, e in che modo i risultati che ricevi differiscono da quelli che ti aspetti? –

risposta

8

Vedi questo codice

@IBOutlet weak var textField: UITextField! 
@IBOutlet weak var textView: UITextView! 

...

var text: NSString = "This is my string" 
var attributedText: NSMutableAttributedString = NSMutableAttributedString(string: text) 

attributedText.addAttributes([NSFontAttributeName: UIFont.boldSystemFontOfSize(14)], range: NSRange(location: 5, length: 2)) 
attributedText.addAttributes([NSFontAttributeName: UIFont.boldSystemFontOfSize(14)], range: NSRange(location: 11, length: 6)) 

textField.attributedText = attributedText 
textView.attributedText = attributedText 

Questa è l'uscita: enter image description here

+1

Lo sta ancora visualizzando tutto nel testo normale invece che in grassetto. È perché sto usando un 'UITextView'? –

+0

L'ho provato anche con UITextView e funziona. Come si può vedere nella risposta aggiornata –

+0

My 'UITextView' viene creato in modo programmatico. Questo farà qualche differenza? –

Problemi correlati