点击单元格后返回到UICollectionView的相同滚动位置

时间:2016-06-26 00:57:44

标签: swift scroll uicollectionview

我有一个UICollectionView,其中填充了设备照片库中的所有照片。点击一个单元格(照片)后,它会转移到允许编辑的视图控制器。在这个观点上,有一个"添加照片"按钮将用户返回到UICollectionView(以选择另一张照片)。我需要将滚动位置设置为"焦点"视图中心的前一个抽头单元格,没有任何动画或跳跃。

我尝试将tapped indexPath保存为变量,然后在viewDidAppear上,使用scrollToItemAtIndexPath滚动到该indexPath。问题是我无法弄清楚如何在单元格点击上更新变量(以保存indexPath)。我在didSelectItemAtIndexPath中尝试了这个,但是值实际上从未保存过。

var cellTappedIndexPath = Int()

在didSelectItemAtIndexPath里面:

cellTappedIndexPath = indexPath.row

cellTappedIndexPath的值永远不会保存。

为了测试scrollToItemAtIndexPath,我已将以下内容添加到viewDidAppear:

customViewCollectionView.scrollToItemAtIndexPath(NSIndexPath(forItem: 25, inSection: 0), atScrollPosition: UICollectionViewScrollPosition.CenteredVertically, animated: false)
// 25 is just a number I have set for testing. Ultimately, I would like this to be the saved indexPath of the last tapped cell.

这会导致collectionView跳转到#34;一旦它满载就到单元格25。如果我将动画设置为true,则会在顶部加载,然后向下滚动到单元格25.不是我想要的结果。

我只想在这里做两件事。 1 - 将单击的单元格保存为变量。 2 - 使用scrollToItemAtIndexPath(#1中的变量),这样视图就会立即加载,最后一个单元格直接进入中间,没有动画或任何东西。

如果需要进一步澄清,请与我们联系。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在点按RewriteEngine On RewriteRule ^directory/?$ /directory/page/ 单元格时保存所选的indexPath,并在需要时使用。

collectionview