我有一个表格视图,其中表格视图单元格中有集合视图。我正在尝试做的是获取集合视图中每个表视图单元格的indexPath。
因此,例如,如果表视图单元格的indexPath.row
为1,则该特定表视图单元格内的集合视图应该能够获取该值。
我的尝试大部分都是成功的。我在cellIndexPath
中创建了一个变量TableViewCell.swift
,该变量在cellForRow
的{{1}}中设置。然后,我可以在集合视图TableView.swift
中使用该值,该视图也在cellForItem
中(因为它处于嵌套状态)。
问题在于,当您滚动浏览表视图和集合视图时,值会更改。当您滚动浏览具有错误值的集合视图并加载更多单元格时,这些值将变为正确。我通过添加
TableViewCell.swift
现在所有值都正确,但是仍然存在另一个问题。例如,如果屏幕上有3个tableview单元格,而我在(表格视图)单元格1中滚动到集合视图的末尾,则单元格4的集合视图也滚动到末尾,请参见下面的视频。 (我不确定这是否是执行此操作的正确方法,因此是问题标题。该问题先前已被询问过,并且已经尝试过这些方法,但仍无法正常工作。我试图实现的目标必须是可能的,因为在App Store中使用。)
更新-
我使用的数据模型基于A1-2-3格式,其中1是类别编号(应用程序中的页面编号),2是子类别编号(tableview行编号),3是广告编号(集合视图单元格编号) 。对于每个类别,数据被分类到3D数组中。 override func prepareForReuse() {
collectionView.reloadData()
}
。
看起来像这样[/*category array*/[/*subcat array*/[/*advert data*/]]]
-第一个数字是类别,第二个数字是子类别,第三个数字是广告,第四个数字是分支编号,第五个是距离。由于每个子类别都有许多广告,因此这些较小的数组位于较大的数组中。是多个子类别,因此子类别数组位于另一个数组中,这是类别数组(3D数组)。使用此数据,可以生成广告代码Ax-y-z。在[[[0.0, 0.0, 0.0, 2.0, 4655.0], [0.0, 0.0, 1.0, 0.0, 4671.0], [0.0, 0.0, 2.0, 0.0, 4663.0]], [[0.0, 1.0, 0.0, 1.0, 4641.0]]]
中,此代码和3D数组中的分支编号用于从JSON文件获取数据。