How do I uses addAttribute and NSRANGE in swift 3

Shawn Baek picture Shawn Baek · Oct 1, 2016 · Viewed 8.8k times · Source

Hi I'm trying to use addAttribute in Swift3.

I want set bold only IDNAME.

Here is what I am trying to this.

let boldUsername = NSMutableAttributedString(string: "IDNAME hi nice 2 meet you :D #HELLOW")


//            boldUsername.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: (boldUsername.string as NSString).range(of: " "))

            boldUsername.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: NSRange(location: 0, length: 5))

How do I get index of the IDNAME i.e different every time?

-> Is there a way to split space and get index?

Answer

Nirav D picture Nirav D · Oct 1, 2016

You need to do something like this.

let personName = "Black"
let wholeStr = "\(personName) hi nice 2 meet you :D #HELLOW"
let boldUsername = NSMutableAttributedString(string: wholeStr)
boldUsername.addAttribute(NSFontAttributeName, value: UIFont(name: "SFUIText-Bold", size: 14)!, range: (wholeStr as NSString).range(of: personName))