在 UITableViewCell 中重用 UITextView

Reusing UITextView inside UITableViewCell

我正在使用 UITextViewUITablViewCell.

中显示一些复杂的内容(例如具有不同颜色的文本、图像、link 等)

首先将内容解析为 NSTextStorage 实例。然后对应的NSLayoutmanagerNSTextContianer配置文本存储

最后,一个TextView实例由文本容器组成。

let textView = UITextViewFixed(frame: frame, textContainer: container)

问题是,文本视图不允许切换文本容器。因此,文本视图需要从父视图中删除,使用新的文本容器重新分配,并在每次重用父单元格时添加回单元格。而且它会使滚动不是很流畅。

在文本容器中尝试 replaceLayoutManager,但不起作用。

我想知道是否有办法在我的案例中重用文本视图?

事实证明,文本视图无法按照我的使用方式重复使用。

作为解决方法,我放弃了每次内容更改时从文本容器创建 UITextView 的做法。文本视图现在是用单元格创建的,就像所有其他子视图一样。更改 attributedText 应该足以满足我现在的使用需求。