gpt4 book ai didi

ios - Swift NSMutableAttributedString 导致在事务中调用 +[CATransaction synchronize]

转载 作者:行者123 更新时间:2023-11-28 21:09:20 27 4
gpt4 key购买 nike

let TipNovice: Novica = NovicaBackend.novica! as! Novica
let cell = tableView.dequeueReusableCell(withIdentifier: "Novica", for: indexPath) as! TableViewCell_Novica
cell.message = NovicaBackend

let htmlString = "<style>body {font-family: Raleway-Light; font-size: 15;}</style>\(TipNovice.body)"

let encodedData = htmlString.data(using: String.Encoding.utf16)!
let attributedOptions = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType]

let attributedString = try! NSMutableAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil)

let paragraphstyle = NSMutableParagraphStyle()
paragraphstyle.lineSpacing = 3
attributedString.addAttribute(NSParagraphStyleAttributeName, value: paragraphstyle, range: NSMakeRange(0, attributedString.length))
CATransaction.commit()
cell.Novica_opis.attributedText = attributedString

我需要有关 +[CATransaction synchronize] 在运行此代码时出现的事务错误中调用的帮助。更准确地说,导致问题的唯一行是

let attributedString = try! NSMutableAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil)

所有这些代码都在这个 TableView 函数中运行。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

最佳答案

我有一个类似的问题,在 viewDidLoad() 或什至 viewWillAppear() 中调用 NSAttributedString 会导致 +[CATransaction synchronize] 发生。我通过将对 NSAttributedString 的适当调用放入主队列以在不同的时间点执行来修复它。

喜欢:

DispatchQueue.main.async {
self.textField.attributedText = attributedStringFromHtmlString(infoMessage)
}

注意:attributedStringFromHtmlString是调用NSAttributedString的包装函数

另见 github对于类似的问题。

关于ios - Swift NSMutableAttributedString 导致在事务中调用 +[CATransaction synchronize],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44263787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com