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

时间:2018-12-25 05:01:02

标签: ios swift performance uitableview uikit

答案

是的。唯一的reuseIdentifier对应于唯一的重用队列。

根据苹果公司UITableViewCell's reuseIdentifier的文档:

  

UITableView对象维护当前对象的队列(或列表)   可重复使用的单元格,每个单元格都有自己的重复使用标识符,并使其   可用于dequeueReusableCellWithIdentifier中的委托:   方法

答案是由用户 Matt 提供的,来源是通过SOF answer间接链接的。后者由用户 prekshya basnet 发布。


问题的阐述

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

换句话说:是否可以在同一UITableView实例上使用参数的不同组合调用实现for registering nibsfor registering classesregister(_:forCellReuseIdentifier:)?知道上述参数组合满足以下条件:

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

问题的触发因素

根据指南最后部分单元格和表视图性能中的Apple's programming guide: A Closer Look at Table View Cells,鼓励使用以下指南:

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

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

我已经可以使用位于我{{1中的对象中的控制标志/枚举来区分nibUITableViewDelegate中两个UITableViewDataSource对象}}后台存储集合。当然,该对象对应于dataSource / indexPath中引用的delegate

问题的先前工作

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

1 个答案:

答案 0 :(得分:1)

  

每个复用标识符是否对应一个唯一的复用队列?

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