0

随着最近几款 iPhone 型号中 3D 触摸的丢失,我正在寻找一种方法来替换我的应用商店应用程序中的 3D 触摸支持,该应用程序有一个 UITableView,当你按下一个单元格时,它会显示一个预览视图控制器。

在 UITableView 中使用 3D 触摸非常简单,只需使用即可支持 UITableViews: registerForPreviewing(with: self, sourceView: tableView) ...然后只需设置一些委托方法,例如:

func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
      if let indexPath = tableView.indexPathForRow(at: location) {
                previewingContext.sourceRect = tableView.rectForRow(at: indexPath)
                let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
                let previewView = storyboard.instantiateViewController(withIdentifier: "PreviewView") as! PreviewView
                previewView.preferredContentSize =  CGSize(width: 300, height: 400)
                let cell = tableView.cellForRow(at: indexPath) as! CustomCell
                previewView.structureId = cell.cellId
                return previewView
            }
        }

但我不清楚如何使用 UIContextMenuInteraction 来确定哪个 tableview 单元格被长按。

4

0 回答 0