NSAttributedString 设置字体大小 - swift
NSAttributedString setting font size - swift
所以我试图让下面的代码工作
return try NSAttributedString(data: data, attributes:[ NSFontAttributeName: UIFont(name: "Chalkduster", size: 18.0) ], options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
我也尝试过以下方法,但都失败了
extension String {
var htmlToAttributedString: NSAttributedString? {
guard let data = data(using: .utf8) else { return NSAttributedString() }
do {
let font = UIFont.systemFont(ofSize: 72)
let attributes = [NSAttributedString.Key.font: font]
return try NSAttributedString(data: data, attributes: attributes, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
return NSAttributedString()
}
}
var htmlToString: String {
return htmlToAttributedString?.string ?? ""
}
}
您要将 html 转换为 NSAttributedString?
您可以将样式附加到字符串源。
示例:
extension String {
func htmlToAttributedString(fontName: String = "Chalkduster", fontSize: Float = 72) -> NSAttributedString? {
let style = "<style>body { font-family: '\(fontName)'; font-size:\(fontSize)px; }</style>"
guard let data = (self + style).data(using: .utf8) else {
return nil
}
return try? NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
}
}
let html = "<div>content</div>"
lebal.attributedText = html.htmlToAttributedString()
结果:
所以我试图让下面的代码工作
return try NSAttributedString(data: data, attributes:[ NSFontAttributeName: UIFont(name: "Chalkduster", size: 18.0) ], options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
我也尝试过以下方法,但都失败了
extension String {
var htmlToAttributedString: NSAttributedString? {
guard let data = data(using: .utf8) else { return NSAttributedString() }
do {
let font = UIFont.systemFont(ofSize: 72)
let attributes = [NSAttributedString.Key.font: font]
return try NSAttributedString(data: data, attributes: attributes, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
return NSAttributedString()
}
}
var htmlToString: String {
return htmlToAttributedString?.string ?? ""
}
}
您要将 html 转换为 NSAttributedString? 您可以将样式附加到字符串源。
示例:
extension String {
func htmlToAttributedString(fontName: String = "Chalkduster", fontSize: Float = 72) -> NSAttributedString? {
let style = "<style>body { font-family: '\(fontName)'; font-size:\(fontSize)px; }</style>"
guard let data = (self + style).data(using: .utf8) else {
return nil
}
return try? NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
}
}
let html = "<div>content</div>"
lebal.attributedText = html.htmlToAttributedString()
结果: