当它们差别不大时,我应该重用 tableView 单元格吗?
Should I reuse tableView cells when they have little difference?
我只是想知道哪个是进行细胞复用的更好方法
例如:
单元格 1:
- 姓名
- 详情
- 时间
单元格 2:
- 姓名
- 详情
- 图片
- 时间
"Name"、"Detail"、"Time" 两个单元格的位置相同。
所以,我的问题是:
- 我应该使用一个单元进行重用(在运行时修改约束)还是创建两个单独的单元?
- 我觉得使用两个cell会有更好的性能,但是如何在xib中重用"Name","Detail","Time"的自动布局(如果使用代码,这个对我来说很容易,但我的项目使用 xib)
你有很多选择。
- 使用堆栈视图,那么隐藏元素不需要操纵约束。让您只创建一个 storyboard/IB 实例和堆栈视图句柄很好地隐藏。
- 使用两个独特的单元格,随着需求的变化,它们可以随着时间的推移沿着不同的路径生长。
或者我的偏好
创建单元格子类,比方说 BaseCell,加载对象或
可以提供的协议 name/detail/time, cell.load(xxx)
创建一个子单元类 BaseCell,例如 ImageBaseCell,加载
加载可以提供的对象或协议的对象
name/detail/time/image,这里处理图片,但是super.load(xxx)会
处理其余部分。
这确实需要每个细胞子类的单独 xib。但是,这样一来,处理 name/detail/time 的逻辑就在一个地方,而不是几个单元格 类。
我建议使用两个单独的单元格。 table 视图数据源方法将负责填充单元格内容,而不是您处理 cellForRowAtIndexPath
方法中的视图。此外,如果您在一个单元格中包含不同大小的内容,对于具有不同内容的单元格,最好使用多个单元格。
我只是想知道哪个是进行细胞复用的更好方法 例如:
单元格 1:
- 姓名
- 详情
- 时间
单元格 2:
- 姓名
- 详情
- 图片
- 时间
"Name"、"Detail"、"Time" 两个单元格的位置相同。 所以,我的问题是:
- 我应该使用一个单元进行重用(在运行时修改约束)还是创建两个单独的单元?
- 我觉得使用两个cell会有更好的性能,但是如何在xib中重用"Name","Detail","Time"的自动布局(如果使用代码,这个对我来说很容易,但我的项目使用 xib)
你有很多选择。
- 使用堆栈视图,那么隐藏元素不需要操纵约束。让您只创建一个 storyboard/IB 实例和堆栈视图句柄很好地隐藏。
- 使用两个独特的单元格,随着需求的变化,它们可以随着时间的推移沿着不同的路径生长。
或者我的偏好
创建单元格子类,比方说 BaseCell,加载对象或 可以提供的协议 name/detail/time, cell.load(xxx)
创建一个子单元类 BaseCell,例如 ImageBaseCell,加载 加载可以提供的对象或协议的对象 name/detail/time/image,这里处理图片,但是super.load(xxx)会 处理其余部分。
这确实需要每个细胞子类的单独 xib。但是,这样一来,处理 name/detail/time 的逻辑就在一个地方,而不是几个单元格 类。
我建议使用两个单独的单元格。 table 视图数据源方法将负责填充单元格内容,而不是您处理 cellForRowAtIndexPath
方法中的视图。此外,如果您在一个单元格中包含不同大小的内容,对于具有不同内容的单元格,最好使用多个单元格。