Ios 如何在3D Touch下注册预览单个单元格?

Ios 如何在3D Touch下注册预览单个单元格?,ios,swift,3dtouch,Ios,Swift,3dtouch,目前我在viewDidLoad中有以下代码: if #available(iOS 9.0, *) { if traitCollection.forceTouchCapability == .Available { registerForPreviewingWithDelegate(self, sourceView: tableView) } } if traitCollection.forceTouchCapability == .available {

目前我在
viewDidLoad
中有以下代码:

if #available(iOS 9.0, *) {
    if traitCollection.forceTouchCapability == .Available {
        registerForPreviewingWithDelegate(self, sourceView: tableView)
    }
}
if traitCollection.forceTouchCapability == .available {
    registerForPreviewing(with: self, sourceView: tableView)
}
关键是,在这种情况下,模糊的是
UITableView
中的所有内容,而不是某个特定的
UITableView单元格中的所有内容

如何仅暴露一个单元格

强制3d触摸期间此图像的状态。

您做得对,您确实需要在
viewDidLoad
. 尽管如此,您还需要实现
previewingContext
方法,以提供源rect。基本上,您会将单元格作为源矩形,它之外的所有内容都会变得模糊

请查看此以了解更多详细信息


您也可以签出

您做得对,您确实需要在
viewdiload
. 尽管如此,您还需要实现
previewingContext
方法,以提供源rect。基本上,您会将单元格作为源矩形,它之外的所有内容都会变得模糊

请查看此以了解更多详细信息


您还可以签出这应该在
viewDidLoad()中:

然后在
previewingContext(\uPreviewingContext:UIViewControllerPreviewing,viewControllerForLocation location:CGPoint)中添加以下内容:

guard let selectedIndexPath = tableView.indexPathForRow(at: location) else { return nil }
previewingContext.sourceRect = tableView.rectForRow(at: selectedIndexPath)

这应该在
viewDidLoad()中

然后在
previewingContext(\uPreviewingContext:UIViewControllerPreviewing,viewControllerForLocation location:CGPoint)中添加以下内容:

guard let selectedIndexPath = tableView.indexPathForRow(at: location) else { return nil }
previewingContext.sourceRect = tableView.rectForRow(at: selectedIndexPath)

我想这个答案可以帮助你:我想这个答案可以帮助你:他指的是手机他指的是手机