我的观点是这样的:

UITableView
|
+-- MyTableViewCell
|  |
|  +-- UICollectionView
|     |
|     +-- MyCollectionViewCell
|       |
|       +-- UIImageView

UIImageView名为“icon”,其层具有一定的角半径。
我已经为Collection视图中的项目实现了Peek和Pop,它可以工作,但是我不知道如何在预览帧中包含图像的角半径。
以下是我如何注册tableView进行预览的方法:
if #available(iOS 9.0, *), traitCollection.forceTouchCapability == .available {
    registerForPreviewing(with: self, sourceView: tableView)
}

这是我的预览功能(灵感来自here):
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {

    guard let indexPath = tableView.indexPathForRow(at: location) else { return nil }
    guard let cell = tableView.cellForRow(at: indexPath) as? MyTableViewCell else { return nil }

    guard let collectionIndex = cell.collectionView.indexPathForItem(at: self.view.convert(location, to: cell.collectionView)) else { return nil }

    guard let collectionViewCell = cell.collectionView.cellForItem(at: collectionIndex) as? MyCollectionViewCell else { return nil }
    let iconRect = tableView.convert(collectionViewCell.icon.frame, from: collectionViewCell.icon.superview!)
    previewingContext.sourceRect = iconRect

    return someViewController

}

这是在提交新的视图控制器之前,强制触摸图像时在预览帧中得到的结果(因此外部模糊):
这是我想要实现的,图像的角半径被保留(应用程序商店的屏幕截图):
通过阅读other posts我认为问题在于我注册了整个tableView以供预览,而不是它的单元格。但是,我找不到一个对表视图单元格中的集合视图单元格有效的解决方案。
感谢任何帮助。

最佳答案

能否重写UIImageView并创建某种自定义绘图功能?

关于ios - ios-偷看和弹出-将UIImageView的角半径保持在UITableViewCell内的UICollectionView中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42399155/

10-11 04:27