Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITextView contain Bold and Regular string

I would like to add a string to my UITextView and I would like some to be in bold and some in regular font. How should It do this? I have an example of what I would like to achieve below.

Thanks

myTextView.text = "This is my string. "

This is my string.

Below is the attempts I have made.

    // 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
like image 982
Tom Coomer Avatar asked Dec 29 '14 13:12

Tom Coomer


1 Answers

See this code

@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

This is the output: enter image description here

like image 146
Marius Fanu Avatar answered Oct 03 '22 04:10

Marius Fanu