物品在索引路径的快速定位?

时间:2017-10-06 18:57:16

标签: ios swift uicollectionview indexpath peek-pop

我正在使用集合视图,我正在尝试设置peek& amp;流行使用它。我已经覆盖了:

func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController?

我正在尝试使用位置变量检索我点击的项目的索引路径。

位置似乎是正确的但由于某种原因,collectionView.indexPathForItem(at: location)返回了错误的索引路径。

我知道如何解决这个问题,但我不确定它是否可以在Swift中解决。这是我的想法:

使用函数indexPathForVisibleItems检索所有可用的IndexPath。循环遍历这些IndexPath并使用一个名为locationForItem(at: indexPath)的函数(如果它存在)。然后,我可以根据其位置找到正确的IndexPath。

如果这是不可能的,我想知道是否有其他人有同样的问题,它返回完全错误的索引路径?我认为正在发生的是我点击的地点可能有多个单元格,它正在抓取视图层次结构中的顶部单元格,并返回该顶部单元格的indexPath,这可能是此Z-中唯一的单元格。指数。

是否可以在某个位置检索所有索引路径?

代码:

override func viewDidLoad()
    if traitCollection.forceTouchCapability == .available {
        registerForPreviewing(with: self, sourceView: collectionView)
    }

override func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
    guard let indexPath = collectionView.indexPathForItem(at: location)...

0 个答案:

没有答案