我有一个
我该如何将单元格的索引路径传递给下面的函数?我需要这个信息来从服务器上删除对象。
UIMenuController
,在一个集合视图单元格的顶部有一个“删除”菜单项,当用户长按带有第1节的单元格时显示它:
@IBAction func handleLongPressOnCell(_ sender: UILongPressGestureRecognizer) {
let p = sender.location(in: collectionView)
guard sender.state == .began, let indexPath = self.collectionView.indexPathForItem(at: p), let cell = self.collectionView.cellForItem(at: indexPath) else { return }
if indexPath.section == 1 {
let frameInSuperView = collectionView.convert(cell.frame, to: view)
let deleteItem = UIMenuItem(title: "Delete", action: #selector(deleteCell))
UIMenuController.shared.menuItems = [deleteItem]
UIMenuController.shared.setTargetRect(frameInSuperView, in: view)
becomeFirstResponder()
UIMenuController.shared.setMenuVisible(true, animated: true)
}
}
我该如何将单元格的索引路径传递给下面的函数?我需要这个信息来从服务器上删除对象。
@objc internal func deleteCell(sender: UIMenuItem) {
print("delete menu item tapped! print index path of selected collection view cell?")
}
= nil
是多余的。 - CesareUIMenuItem
并附加一个处理程序块...但根据我的经验,如果你只需要使用一次,这样做可能不值得努力,而且子类化UIKit类可能比第一眼看起来更棘手。 - dr_bartonil
是不必要的,但有时候明确的代码比简短的代码更好...不知道为什么,但我更喜欢将其放在那里,给我一种掌控的温暖感觉 :) - dr_barto