gpt4 book ai didi

ios - 在 UITableViewCell 中更新 UITextView 的 attributedText 是滞后的

转载 作者:行者123 更新时间:2023-11-29 01:37:44 24 4
gpt4 key购买 nike

我有一个带有 tableView 的 View Controller ,tableView 有很多单元格。

class TimelineCell: UITableViewCell {
@IBOutlet weak var photo: UIImageView!
@IBOutlet weak var message: UITextView!
}

class TimelineViewController: UIViewController, UITableViewDataSource {
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let entity = tableViewData[indexPath.row]

let cell: TimelineCell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier, forIndexPath: indexPath) as! TimelineCell
let messageAttributedString = entity.messageAttributedString
cell.message.attributedText = messageAttributedString
return cell
}
}

如果messageAttributedString的长度太长,cell.message的高度太长,tableView在滚动时会卡顿。如果我删除更新 attributedText 代码,滚动是平滑的。

有解决这个问题的想法吗?

我试过UILabel,问题依旧。
我可以在后台线程中更新 attributedText 吗?我想我不能。

我尝试先将 UITextView 转换为 UIImage,然后在单元格中显示图像。 tableView 不再有延迟,但我认为这不是一个好的解决方案。

最佳答案

这是正常做法(转换为 UIImage),因为即使 Apple 也提供了 shouldRasterize 这样的东西可以与 UITableViewCell 一起使用。在后台呈现 attributedString 也没有什么犯罪行为。您甚至可以准备整个表格单元格对象,将它们存储到堆栈中,然后从 cellForRawAtIndexPath 返回它们。

所有可能的解决方案都是可以接受的,以提供最佳的用户体验。

关于ios - 在 UITableViewCell 中更新 UITextView 的 attributedText 是滞后的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32777431/

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