这让我疯了,我已经读了好几个小时并试了一切,不能让这个按钮选择器工作。这应该不难。
在CellForItemAt内部我设置了按钮标签并尝试调用按钮。
func deleteCellButtonTapped(sender: UIButton!) {
self.packArray.remove(at: sender.tag)
print(packArray.count)
self.outerCollectionView.deleteItems(at: [IndexPath(item: sender.tag, section: 0)])
self.outerCollectionView.reloadData()
self.outerCollectionView.layoutIfNeeded()
}
我已经尝试过(_ :),“deleteCellButtonTapped:”,以及任何其他数量的括号组合,我仍然会得到无法识别的选择器。我不知道为什么autocomplete推荐(发送者:)我以前从未见过这个。
然后我的按钮功能:
Object.keys
答案 0 :(得分:0)
假设您使用的是Swift 3,func deleteCellButtonTapped(sender: UIButton!)
属于同一类:
addTarget(self, action: #selector(deleteCellButtonTapped(sender:)), for: .touchUpInside)
工作正常。
答案 1 :(得分:0)
从它的类中引用选择器方法对我有用。
您可以做的是访问选择器方法前缀为类名。
我假设您的班级名称为MyClassViewController
。你的代码看起来像:
class MyClassViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
.... // Other implementation methods
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
....// create cell object and dequeue
cell.deleteCellButton.addTarget(self, action: #selector(MyClassViewController.deleteCellButtonTapped(_:)), for: .touchUpInside)
return cell
}
func deleteCellButtonTapped(_ sender: Any) {
// your method implementation
print("Selector method called")
}
}
希望这很好用