在swift中使用属性字符串使文本变粗 [英] Making text bold using attributed string in swift
本文介绍了在swift中使用属性字符串使文本变粗的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个这样的字符串
var str = "@text1 this is good @text1"
现在用另一个字符串替换 text1
,比如 t 1
。我能够替换文本,但我无法加粗。我想加粗新字符串 t 1
,以便最终输出为:
Now replace text1
with another string, say t 1
. I am able to replace the text, but i am not able to bold it. I want to bold the new string t 1
, so that the final output will be:
@ t 1 这很好 @t 1
我该怎么做?
我看到的所有示例都在Objective-C中,但我想在Swift中进行。
All the examples I am seeing are in Objective-C, but I want to do it in Swift.
谢谢提前。
推荐答案
这是一种在单个标签中组合粗体和普通文本的简洁方法。
Here is a neat way to make a combination of bold and normal texts in a single label.
分机:
Swift 3.0
extension NSMutableAttributedString {
@discardableResult func bold(_ text:String) -> NSMutableAttributedString {
let attrs:[String:AnyObject] = [NSFontAttributeName: UIFont(name: "AvenirNext-Medium", size: 12)!]
let boldString = NSMutableAttributedString(string: text, attributes:attrs)
self.append(boldString)
return self
}
@discardableResult func normal(_ text:String)->NSMutableAttributedString {
let normal = NSAttributedString(string: text)
self.append(normal)
return self
}
}
Swift 4
extension NSMutableAttributedString {
@discardableResult func bold(_ text: String) -> NSMutableAttributedString {
let attrs: [NSAttributedStringKey: Any] = [.font: UIFont(name: "AvenirNext-Medium", size: 12)!]
let boldString = NSMutableAttributedString(string:text, attributes: attrs)
append(boldString)
return self
}
@discardableResult func normal(_ text: String) -> NSMutableAttributedString {
let normal = NSAttributedString(string: text)
append(normal)
return self
}
}
用法:
let formattedString = NSMutableAttributedString()
formattedString
.bold("Bold Text")
.normal(" Normal Text ")
.bold("Bold Text")
let lbl = UILabel()
lbl.attributedText = formattedString
结果:
Bold文字普通文字粗体文字
这篇关于在swift中使用属性字符串使文本变粗的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文