当它们几乎没有区别时,我应该重用 tableView 单元格吗? [关闭]
Posted
技术标签:
【中文标题】当它们几乎没有区别时,我应该重用 tableView 单元格吗? [关闭]【英文标题】:Should I reuse tableView cells when they have little difference? [closed] 【发布时间】:2018-09-26 14:28:47 【问题描述】:我只是想知道哪种方法可以更好地重用单元格 例如:
单元格 1:
姓名 详情 时间单元格 2:
姓名 详情 图片 时间“名称”、“详细信息”、“时间”这两个单元格的位置相同。 所以,我的问题是:
-
我应该使用一个单元格进行重用(在运行时修改约束)还是创建两个单独的单元格?
我认为使用两个单元格会有更好的性能,但是如何在xib中重用“名称”,“详细信息”,“时间”的自动布局(如果使用代码,这对我来说很容易,但我的项目使用xib)
【问题讨论】:
单元格 1 是多次出现还是标题单元格? "但是如何在 xib 中重用 "Name","Detail","Time" 的自动布局" 只需在每个 xib 中单独执行即可。您不需要“重用”任何自动布局。 【参考方案1】:你有很多选择。
使用堆栈视图,则不需要操作约束来隐藏元素。让您只创建一个情节提要/IB 实例,并且可以很好地隐藏堆栈视图句柄。 使用两个独特的单元格,随着时间的推移,它们可以随着需求的变化而沿着不同的路径发展。或者我的喜好
创建单元子类,比如说 BaseCell,它加载对象或 可以提供名称/详细信息/时间的协议,cell.load(xxx)
创建一个子类 BaseCell 的单元,比如 ImageBaseCell,它加载 加载可以提供的对象或协议的对象 name/detail/time/image,这里处理图片,但是 super.load(xxx) 会 处理剩下的。
这确实需要每个单元子类单独的 xib。然而,这种方式,处理名称/细节/时间的逻辑在一个地方,而不是几个单元格类。
【讨论】:
感谢您的回答。我认为您的 xib+subclass 是最好的方法!【参考方案2】:我建议使用两个单独的单元格。表格视图数据源方法将负责填充单元格内容,而不是您在 cellForRowAtIndexPath
方法中处理视图。此外,如果您要在一个单元格中合并不同大小的内容,那么对于具有不同内容的单元格,最好使用多个单元格。
【讨论】:
以上是关于当它们几乎没有区别时,我应该重用 tableView 单元格吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
IOS swift TableView有没有一种方法可以重用它们