在UITableViewCell中重用UITextView

时间:2018-06-12 15:42:58

标签: ios swift uitableview uitextview textkit

我正在使用UITextViewUITablViewCell内显示一些复杂内容(如不同颜色,图片,链接等文字)。

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

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

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

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

在文本容器中尝试了replaceLayoutManager,但没有工作。

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

1 个答案:

答案 0 :(得分:0)

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

作为一种解决方法,每次内容更改时,我都放弃从文本容器创建UITextView。现在,像其他所有子视图一样,将使用该单元格创建文本视图。现在,更改from ao in _db.AvailableOptions where ao.recordId == "TheCurrentRecord" && ao.SelectedOptions.OptionId == 1 select new MyPoxo {ao.SelectedOptions.Value ?? 0}; 就足够我使用了。