I want to make some part of a text string bold.
Eg: This is to be bold. This is normal string.
In Android, it can be easily achieved by using spannable strings. What is its equivalent in iOS?
I want to make some part of a text string bold.
Eg: This is to be bold. This is normal string.
In Android, it can be easily achieved by using spannable strings. What is its equivalent in iOS?
Yes, it can be achieved with NSAttributedString
:
NSString *yourString = @"This is to be bold. This is normal string.";
NSMutableAttributedString *yourAttributedString = [[NSMutableAttributedString alloc] initWithString:yourString];
NSString *boldString = @"This is to be bold";
NSRange boldRange = [yourString rangeOfString:boldString];
[yourAttributedString addAttribute: NSFontAttributeName value:[UIFont boldSystemFontOfSize:12] range:boldRange];
[yourLabel setAttributedText: yourAttributedString];
Swift version:
@IBOutlet var theLabel: UILabel!
@IBOutlet var theTextview: UITextView!
let theString = "Please satisfy three of the following password conditions" as NSString
let theAttributedString = NSMutableAttributedString(string: theString as String)
let boldString = "three"
let boldRange = theString.range(of: boldString)
let font = UIFont.boldSystemFont(ofSize: 20)
theAttributedString.addAttribute(NSFontAttributeName, value: font, range: boldRange)
theLabel.attributedText = theAttributedString
theTextview.attributedText = theAttributedString
You can achieve this using NSMutableAttributedString
.
Refer Apple docs about NSMutableAttributedString.
I'd tried this answer's code to get bold and normal font in an UILabel.