iOS/Swift:是否可以有选择地更改UITextView部分中的字体?

iOS/Swift:是否可以有选择地更改UITextView部分中的字体?,ios,swift,uitextview,Ios,Swift,Uitextview,是否可以有选择地更改UITextView部分中的字体 我有一个UITextView,希望有选择地更改部分内容的字体大小和样式。比如说 Lorem ipsum dolorsit er elit lamet,consectetaur cillium ADIPISCING pecu,在劳工和大型企业中使用临时eiusmod 阿利夸。Ut enim ad最小值 我们可以通过rangeOfsString:方法使用NSString和属性来实现这一点 let longString = "Lorem ipsum

是否可以有选择地更改UITextView部分中的字体

我有一个UITextView,希望有选择地更改部分内容的字体大小和样式。比如说

Lorem ipsum dolorsit er elit lamet,consectetaur cillium ADIPISCING pecu,在劳工和大型企业中使用临时eiusmod 阿利夸。Ut enim ad最小值


我们可以通过rangeOfsString:方法使用NSString和属性来实现这一点

let longString = "Lorem ipsum dolor. VeryLongWord ipsum foobar"
let longestWord = "VeryLongWord"

let longestWordRange = (longString as NSString).rangeOfString(longestWord)

let attributedString = NSMutableAttributedString(string: longString, attributes: [NSFontAttributeName : UIFont.systemFontOfSize(20)])

attributedString.setAttributes([NSFontAttributeName : UIFont.boldSystemFontOfSize(20), NSForegroundColorAttributeName : UIColor.redColor()], range: longestWordRange)


label.attributedText = attributedString

您可以使用
NSAttributedString
使用addAttribute方法为字符串提供属性

 let string = "Bold Italics Roman"
 let attributes = [NSFontAttributeName: UIFont(name: "Open Sans", size: 18.0)!]
 let attributedText = NSMutableAttributedString(string: string, attributes: attributes)

 let sampleString = string as NSString
 let range  = sampleString.range(of: "Italics")
 attributedText.addAttribute(NSFontAttributeName, value: UIFont(name: "OpenSans-Italic", size: 18.0)!, range: range)

 textView.attributedText = attributedText

使用
NSAttributedString
可以实现这一点。这绝对是可能的。尽管从我的经验来看需要谨慎一点,但最好将这个属性化字符串设置为可以在任何地方调用的通用方法。众所周知,苹果在Swift版本升级中修改了语法