我有一个基于自定义单元格的集合视图。单元也具有拐角半径。
因此,当我尝试使其达到峰值并弹出时,我放入 “ previewingContext.sourceRect”始终没有圆角。
首次尝试:
我向以下位置注册了收藏视图
registerForPreviewing(with: self, sourceView: self.collectionView)
然后我尝试了此操作:
guard let indexPath = collectionView?.indexPathForItem(at: location) else { return nil }
guard let cell = collectionView?.cellForItem(at: indexPath) else { return nil }
// I also tried to use the next line and than get the frame of the cell Attributes but it didn't work...
// let cellAttributes = collectionView.layoutAttributesForItem(at: indexPath)
previewingContext.sourceRect = cell.frame
第二次尝试:
我尝试注册每个单元格,然后确定单元格的范围
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
let locationCell : CGPoint = self.collectionView.convert(location, from: self.view)
guard let indexPath = self.collectionView?.indexPathForItem(at: locationCell) else {
print(locationCell)
print("Cell Not found")
return nil
}
previewingContext.sourceRect = self.collectionView.cellForItem(at: indexPath)!.bounds
这是可行的,角落完美地切开了,但是我无法确定偷看和摆放了哪个单元格,因为此解决方案中每个单元格的每个路径索引都相同。
更新: 我还尝试通过情节提要板连接单元,但仍然没有将角切成圆角。