【发布时间】:2018-12-25 05:01:01
【问题描述】:
回答
是的。一个唯一的reuseIdentifier 对应一个唯一的重用队列。
根据 Apple 的 UITableViewCell's reuseIdentifier 文档:
一个 UITableView 对象维护一个当前的队列(或列表) 可重复使用的单元格,每个都有自己的重复使用标识符,并制作它们 可用于 dequeueReusableCellWithIdentifier 中的委托: 方法
答案由用户 Matt 提供,来源间接链接到 SOF answer。后者由用户 prekshya basnet 发布。
问题的阐述
每个reuseIdentifier 是否对应一个唯一的重用队列?
换句话说:是否可以在同一个 UITableView 实例上使用不同的参数组合调用 register(_:forCellReuseIdentifier:) 及其实现 for registering nibs 或 for registering classes?知道所述参数组合满足以下条件:
问题的触发器
根据指南末尾单元格和表格视图性能部分中的Apple's programming guide: A Closer Look at Table View Cells,鼓励遵循以下准则:
- 重复使用单元格。
- 避免重新布局内容。
- 使用不透明的子视图。
- 为了满足上述准则项目 1. 和 2.
- 为了满足我的要求,即有两个相同的单元格 类型,但它们甚至以不同的方式以不同的方式布局 尽管它们是相同的 XIB 和 UITableView 子类。
然后我需要为同一个nib 对象使用两个不同的reuseIdentifier 字符串。
我已经可以在UITableViewDelegate 或UITableViewDataSource 中使用位于我的dataSource 后备库集合中的对象中的控制标志/枚举来区分布局不同的两个nib 对象。这个对象当然对应于delegate/dataSource中引用的indexPath。
问题以前的工作
我在多个网站上使用多个搜索引擎搜索了互联网,包括Stackoverflow。我已经检查了以下问题:what registering a call for cell reuse actually do 和 registered classes for reuse identifiers 以及许多其他太遥远甚至无法提及的问题。
【问题讨论】:
-
重用标识符是最重要的。不同的重用标识符之间的 nib 或类可以是相同的,但是如果您请求具有特定重用标识符的单元格,那么您会得到
标签: ios swift performance uitableview uikit