我正在尝试使用以下代码实现Peek和Pop以预览照片库中的图像:
func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
if let indexPath = self.collectionView!.indexPathForItemAtPoint(location), cellAttributes = self.collectionView!.layoutAttributesForItemAtIndexPath(indexPath) {
previewingContext.sourceRect = cellAttributes.frame
}
let selectedPhotoAsset = self.allPhotos[self.selectedPhotoIndexPath![0].item] as! PHAsset
guard let displayImageDetailVC = storyboard?.instantiateViewControllerWithIdentifier("DisplayImageDetailVC") as? DisplayImageViewController else {
print("Error instantiate DisplayImageDetail View Controller")
return nil
}
displayImageDetailVC.selectedPhotoAsset = selectedPhotoAsset
return displayImageDetailVC
}
即使它有效,但问题是在收集视图滚动之后,预览区域有时在尝试查看时不在确切的单元格位置。
有什么方法可以获得细胞的实际位置吗?
答案 0 :(得分:0)
我找到了解决这个问题的方法,结果发现它与registerForPreviewingWithDelegate有关。
而不是
registerForPreviewingWithDelegate(self, sourceView: view)
应该是
registerForPreviewingWithDelegate(self, sourceView: self.collectionView!)