swift - NSAttributedString 在 iOS 13 中无法按预期工作
问题描述
我正在使用 NSMutableAttributedString 在标签中显示多字体和彩色文本。NSMutableAttributedString 在 iOS 13 中没有按预期工作,但相同的代码在 iOS 11 和 12 版本中工作正常。
let hdAttributedText = NSMutableAttributedString(string: "Sample", attributes: [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue", size: 14.0)!, NSAttributedString.Key.foregroundColor: UIColor.black])
hdAttributedText.append(NSAttributedString(string: " "))
hdAttributedText.append(NSAttributedString(string: "Description", attributes: [NSAttributedString.Key.font: UIFont(name: "HelveticaNeue-Medium", size: 14.0)!, NSAttributedString.Key.foregroundColor: UIColor(red: 0.29, green: 0.70, blue: 0.36, alpha: 1)]))
logoTextLabel.attributedText = hdAttributedText
预期结果是“示例描述”。在此文本中,“示例”应为黑色文本的常规字体,“描述”应为绿色的中等字体
解决方案
在 iOS 13 上,属性字符串在 tableviews 中不起作用,幸运的是我知道一个解决方法,它会像一个魅力一样工作。
您需要做的就是使属性字符串在主线程上运行(即使您在 awakeFromNib 中设置属性字符串),如下所示:
DispatchQueue.main.async {
//set your attributed text here
}
推荐阅读
- c# - Xamarin Android ForceDarkHelper 是什么?
- lua - Lua ffi.load 找不到没有绝对路径的库
- temporary-objects - 临时物化转换 - 术语和概念的混淆
- python - 如何使用 scala 进程实用程序发送 EOF
- javascript - 如何在单击特定选项卡后立即为折线图制作动画?
- sql - 如何处理`|| chr(38) ||` 在 SQL 服务器中
- azure - 使用静态令牌连接到动态
- java - 如何在 Rapidminer 中将 ArrayList 转换为 ExampleSet?
- flutter - 路透社或彭博社的 RSS 商业新闻提要是否有用于颤振的 xml 网址?
- python - Matplotlib 中表格周围的空格