我正在使用集合视图,我正在尝试设置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)...