如何处理cell中subview数量不定的情况?

如图,这是一个cell:

clipboard.png

cell中的黑色小标签数量不定,每次给cell赋值model的时候都要先将它们全部remove再循环创建,这也就导致了tableView很卡。如果让你们来做,你们会怎么优化?

阅读 3.1k
4 个回答

简答: 缓存.
核心代码提示: var modelHeightCache:<Model,CGFloat> = [:]
按你上面的说法,比较卡可能是由于 tableView 每次需要自动计算 cell 的高度导致比较卡.
这个的话你可以缓存每一个 model 对应的 cell 的高度. 因为同样的内容每次显示的高度应该是一样的,所以一次计算之后下一次就可以缓存上了.
另外,如果你在 标签的的创建比较费时,你甚至可以缓存 tags 对应的 tagsView(假设你的标签容器是 tagsView)
核心代码提示: var tagsViewCache:<TagsHash:TagsView> = [:]

总而言之,通过缓存减少重复的计算及布局工作.

让我来做的话 我会在cell里边把标签做成一个collectionview 起码不会像现在这样remove后再循环添加那么卡

创建足够的标签,然后给小标签设置Hidden,不要反复创建subview

cell中的黑色小标签用collectionView展示

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏