问题标签 [reuseidentifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
1191 浏览

ios - UItableView Cell Resuablity Data 在滚动时被交换

分组表视图,每个部分有 4 行

大家好,

大家好,我正在使用这段代码来获取上述输出但是当我滚动表格视图时,我得到的输出是

当我滚动表格视图时,我得到的输出

如果我在该部分中输入任何文本并滚动文本,那么单元格中的文本会发生变化。

0 投票
3 回答
4664 浏览

ios - iOS:未使用重用标识符清除单元格内容

我正在尝试使用列出 UILabel 中的数组的单元格构建一个表。因此,每个单元格的大小和标签数量由该数组中的对象数量决定。但是,我遇到了一个问题,内容最初输入正确,但是随着表格单元格在滚动过程中被回收,内容并不清楚。

破碎的 UITableView 重叠单元格内容

这是我的整个实现。如果有人可以请给我一个解释,说明如何防止标签在回收过程中被保留,我将不胜感激。谢谢你。

视图控制器.h

视图控制器.m

自定义单元格.h

CustomCell.m

0 投票
1 回答
2370 浏览

ios - 尝试创建 UICollectionViewCell 时断言失败

我正在尝试使用自定义笔尖创建 UICollectionView。为此,我正在做与 UITableView 相同的事情:

MyCollectionViewController.m

我的CollectionCell.m

我收到一个错误

在这条线上

我真的不明白发生了什么。它与重用有关,因为如果我只调用[MyCollectionCell newCell];它就可以了。实际上它只适用于iOS6。在 iOS7 我得到 *** Assertion failure in -[UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:], /SourceCache/UIKit_Sim/UIKit-2903.23/UICollectionView.m:1367

谢谢你的帮助 !

0 投票
1 回答
471 浏览

ios - iOS Collection View Cells:重用期间的强引用/防止单元重用?

问题:当集合视图单元格滚动到屏幕外并重用时,对集合视图单元格的引用会发生什么情况?我在不使用“出队”的情况下提供单元格的所有尝试都失败了。有没有办法将一个单元格标记为不可重用,所以集合会保留它?我想告诉集合“嘿,不要重复使用这个单元格!”。

长话短说:我有一个集合视图,其中每个单元格都有一个集合视图。我在子集合视图上使用自定义布局( https://github.com/lxcid/LXReorderableCollectionViewFlowLayout )以启用单元格的拖动和重新排序,但我想扩展它以允许将单元格从一个集合视图拖动到另一个集合视图。我让它工作,除了如果从集合视图中拖动一个单元格,然后在拖动过程中滚动到屏幕外,它会中断,因为处理手势的布局及其集合视图已被重用。具有集合视图和可重新排序布局的单元格仍在工作,我需要它不要被重用。

0 投票
2 回答
1104 浏览

ios - 如何获取对当前 UITableViewCell 的引用

在我的实验中,我需要先UITableViewCell在 tableView 中参考。通过一些操作,我需要设置图像和其他一些单元格属性,并保持这个唯一单元格的状态,即使 tableView 将被滚动。由于重用,所有这些属性都可能通过滚动(实际上它们是)为空。为了在每次单元格出现在屏幕上时设置此属性,在 `-cellForRowAtIndexpath' 内部,我尝试使用以下方法捕获第一个单元格:

但看起来像这样我只能在下一个可滚动的“屏幕”上捕捉下一个第一个单元格。那么,我怎样才能获得对第一个 UITableView 单元格的引用?

0 投票
0 回答
115 浏览

ios7 - 重用的 UITableView 单元格未正确重建

我有一个带有关联表视图的表视图控制器。此列表中的单元格还包含 tableViews,或者更具体地说,该单元格具有一个 tableView,并且该单元格的每个实例都使用嵌入的 tableView 来显示略有不同的名称列表。这是一个图表:

  1. 父表视图
  2. __tableViewCell
  3. ____嵌入式表格视图
  4. ______name1(在单元格中)
  5. ______名字2“
  6. ______姓名3“</li>

嵌入式 tableView 没有视图控制器。委托和数据源都映射到嵌入的 tableView 类。这都是基于故事板的。

在模拟器上,这个设置对于列表中显示的前几个单元格非常有效——每个单元格都显示自己的名称列表——但是在第四个或第五个单元格之后(是的,我已经在屏幕外滚动了几次),单元格仍然显示,但它们不是由嵌入式表格视图生成的;他们有旧的和不正确的名单。此时,嵌入式 tableView 既不会调用 awakeFromNib 也不会调用 initWithCoder (对于成功显示的单元格都会调用这两者)。

这意味着(对我而言)父 tableView(拥有具有嵌入式 tableViews 的单元格的那个)正在重用它正在退出重用列表的单元格。这带来了一些问题:

  1. 为什么不尝试重建细胞?在父 tableView 的 tableView:cellForRowAtIndexPath 中,我得到一个单元格并用一些信息填充它(例如,单元格中还有一个 UILabel 以便我可以识别它)和新的内容,但是嵌入的 tableView 部分单元格未重建。

  2. 如果这是从某个缓存中提取重复使用的单元格的情况,我如何将每个缓存项标记为“脏”以便重建它?我知道 tableView:didEndDisplayingCell:forRowAtIndexPath: 但我不知道如何使用它来完成重建。例如,我试图删除单元格(即,cell = nil),但这没有帮助(我在父 tableView 和嵌入的 tableView 上都这样做了)。

  3. 在讨论 prepareForReuse (我没有尝试,因为我想更改的不仅仅是属性),它说,“tableView:cellForRowAtIndexPath: 中的表视图的委托:在重用单元格时应该始终重置所有内容。如果单元对象没有关联的重用标识符,则不调用此方法。如果你重写这个方法,你必须确保调用超类实现。” 这正是我想要做的,但嵌入的 tableView 以某种方式逃避了这一点(回想起既没有调用 awakeFromNib 也没有调用 initWithCoder 。

谢谢你。

0 投票
1 回答
2068 浏览

ios - CollectionView、TableView 注册类用于重用标识符

我想知道哪些类注册了 UITableView 或 UICollectionView 与重用标识符

是否可以找到此信息?

我检查了类引用并没有找到任何东西。

我想从 tableview 中注销某些类,以便用其他类替换它们。

我知道我可以更改重用标识符,但是,我想知道是否有办法获取这些对象的注册类/笔尖

0 投票
1 回答
324 浏览

swift - 如何在swift中声明类属性,就像UITableViewCell重用标识符一样?

我正在尝试快速声明与 UITableView 子类关联的重用标识符。

据我了解,我想声明一个类存储属性(不是实例),因此我可以通过以下方式访问:MyCustomTableCell.ReuseIdentifer。

这是我正在尝试的:

编译器提到尚不支持类属性。如何以干净的方式声明与类类型关联的此类常量?

0 投票
0 回答
113 浏览

ios - MPMoviePlayerController 在自定义 UITableViewCell 中重用

我正在创建一个表格,其中每个单元格都有一个播放按钮和一个 MPMoviePlayerController。它已设置为我有自定义 UITableViewCell 类加载 .xib。为了确保正确重用单元格,我让 tableView 控制器为按钮标题设置了一个数字(无论 indexpath.row 是什么)。这显示正确,但是当我播放单元格的一个视频并快速向下滚动时,它再次出现在另一个单元格中。我该如何解决这个问题?

0 投票
3 回答
2010 浏览

ios - 如何在 Storyboard 控制器中重用定义为原型单元的自定义 UITableViewCell

我有两个不同 UITableViewControllers/TableViews 项目的唯一单元格模板。我需要的是定义一次,然后通过其他 UITableView 重用

问题是当我在不包含单元原型的 UITableView 上调用此方法时,我得到 NULL。

如何跨多个表控制器重用我的原型单元?我想在情节提要中定义单元格模板,而不是 xib。