每个唯一的重用标识符是不是都有自己唯一的重用队列?

Posted

技术标签:

【中文标题】每个唯一的重用标识符是不是都有自己唯一的重用队列?【英文标题】:Does each unique reuse identifier have its own unique reuse queue?每个唯一的重用标识符是否都有自己唯一的重用队列? 【发布时间】: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?知道所述参数组合满足以下条件:

相同每个调用中的 nibcellClass 值,具体取决于所述 UITableViewController 使用的实现。 唯一 identifier 每次调用

问题的触发器

根据指南末尾单元格和表格视图性能部分中的Apple's programming guide: A Closer Look at Table View Cells,鼓励遵循以下准则:

    重复使用单元格。 避免重新布局内容。 使用不透明的子视图。
为了满足上述准则项目 1. 和 2. 为了满足我的要求,即有两个相同的单元格 类型,但它们甚至以不同的方式以不同的方式布局 尽管它们是相同的 XIB 和 UITableView 子类。

然后我需要为同一个nib 对象使用两个不同的reuseIdentifier 字符串。

我已经可以在UITableViewDelegateUITableViewDataSource 中使用位于我的dataSource 后备库集合中的对象中的控制标志/枚举来区分布局不同的两个nib 对象。这个对象当然对应于delegate/dataSource中引用的indexPath

问题以前的工作

我在多个网站上使用多个搜索引擎搜索了互联网,包括***。我已经检查了以下问题:what registering a call for cell reuse actually do 和 registered classes for reuse identifiers 以及许多其他太遥远甚至无法提及的问题。

【问题讨论】:

重用标识符是最重要的。不同的重用标识符之间的 nib 或类可以是相同的,但是如果您请求具有特定重用标识符的单元格,那么您会得到 【参考方案1】:

每个reuseIdentifier 是否对应一个唯一的重用队列?

是的。这正是重用标识符的含义:它是一堆可供重用的单元格的名称。

【讨论】:

知道只有你们中的一个人能够回答这种问题。谢谢。

以上是关于每个唯一的重用标识符是不是都有自己唯一的重用队列?的主要内容,如果未能解决你的问题,请参考以下文章

根据部分更改单元重用标识符

IOS之TableViewCell重用机制避免重复显示问题

为啥我的 TableView 单元格需要重用标识符?

FxCop 规则确保每个类都有唯一的标识符

如何为每个片段保存一个变量值以重用它? [关闭]

UNIX环境高级编程第八章