Select 集合中的单元格不可见
Select not visible cell inside a collection
嗯,有人可能会问你为什么要这样做?
我在某些视图中有一个集合视图,用户可以在其中 select 一个单元格。
然后这个 selection 被保存,稍后,当用户想要再次进入那个视图时,他应该能够看到他之前保存的 selection.
如果他的 selection 在集合视图的末尾,我将无法加载他之前的 selection 的集合视图,因为:
for cell in collectionView.visibleCells()
// find and select previous cell
不会遍历所有单元格,特别是用户选择的单元格(尚不存在)。
这个问题有解决办法吗?
经过大量搜索,对我有用的是设置一个局部变量说:selectedCell
,然后当我想显示以前用户选择的单元格时,我将只设置变量,然后在 :
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
if(indexPath.row==selectedCell)
}
我正在检查它是否已经被选中并标记它。
我找不到任何其他自动执行此操作的巧妙方法。
您可以记住所选行的确切索引路径(使用 indexPathsForSelectedRows
),但是如果您的 dataSource
设置 changes/updates 并且记住的索引可能失效,这仍然不安全使用 new/different 组数据。因此,您应该记住选择“真实世界”objects(您在其中填充特定的单元格数据,如标题等),例如通过记住您选择的 object 标识符,这样您就可以到 re-map 和 re-select 行,以防重新加载不同的数据。 object选择的管理通常完全在您手中。
嗯,有人可能会问你为什么要这样做?
我在某些视图中有一个集合视图,用户可以在其中 select 一个单元格。 然后这个 selection 被保存,稍后,当用户想要再次进入那个视图时,他应该能够看到他之前保存的 selection.
如果他的 selection 在集合视图的末尾,我将无法加载他之前的 selection 的集合视图,因为:
for cell in collectionView.visibleCells()
// find and select previous cell
不会遍历所有单元格,特别是用户选择的单元格(尚不存在)。
这个问题有解决办法吗?
经过大量搜索,对我有用的是设置一个局部变量说:selectedCell
,然后当我想显示以前用户选择的单元格时,我将只设置变量,然后在 :
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
if(indexPath.row==selectedCell)
}
我正在检查它是否已经被选中并标记它。 我找不到任何其他自动执行此操作的巧妙方法。
您可以记住所选行的确切索引路径(使用 indexPathsForSelectedRows
),但是如果您的 dataSource
设置 changes/updates 并且记住的索引可能失效,这仍然不安全使用 new/different 组数据。因此,您应该记住选择“真实世界”objects(您在其中填充特定的单元格数据,如标题等),例如通过记住您选择的 object 标识符,这样您就可以到 re-map 和 re-select 行,以防重新加载不同的数据。 object选择的管理通常完全在您手中。