我已经用UIView创建了XIB。我已经给它分配了MyViewControl: UIControl类,所以我可以在里面添加touch up动作。它起作用了,触摸在我的类中被调用。
现在,我已经创建了UICollectionView并添加了这个"xib“作为单元格视图。我现在希望在UICollectionViewDelegate类中处理触摸。所以我这样做了:
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
for v in cell.contentView.subviews {
if let c: MyViewControl = v as? MyViewControl {
c.isUserInteractionEnabled = true
c.addTarget(self, action: #selector(myClick), for: UIControlEvents.touchUpInside)
}
}
}
func myClick(sender: Any){
print("click....")
}但是,永远不会调用myClick选择器。如果我将UIButton添加到MyViewControl中,并对此按钮执行相同的操作(addTarget),则可以正确调用回调。
https://stackoverflow.com/questions/44541847
复制相似问题