代理方法需要返回一个UIContextMenuConfiguration,其构造函数如下init(identifier: NSCopying? attributes: [.destructive]) { action in print("delete") } // 返回UIContextMenuConfiguration return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) { _ in UICollectionView iOS 13 以后,UITableView 和 UICollectionView 也支持 Context Menus,使用起来特别简单,只需要实现相应的代理方法,返回UIContextMenuConfiguration _ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration
如果要启用上下文菜单,需要创建一个UIContextMenuInteraction并将其添加给某个触发的 UIView,然后指定 delegate,在代理方法创建 UIMenu 并返回UIContextMenuConfiguration contextMenuInteraction(_ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration attributes: [.destructive]) { action in print("delete") } // 返回UIContextMenuConfiguration return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) { _ in