sungwookbaek sungwookbaek - 2 months ago 55
Swift Question

How do I uses addAttribute and NSRANGE in swift 3

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

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))