覆盖单元格中的触摸后,Swift CollectionView didSelectItemAt 不再工作

Posted

技术标签:

【中文标题】覆盖单元格中的触摸后,Swift CollectionView didSelectItemAt 不再工作【英文标题】:Swift CollectionView didSelectItemAt no longer working after overriding touch in cell 【发布时间】:2020-10-11 20:38:12 【问题描述】:

我想在我的CustomCollectionViewCell 上添加一个tapAnimation,所以我在class 中添加了这些行:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
    UIView.animate(withDuration: 0.05, delay: 0, options: .curveEaseInOut) 
        self.theView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
    


override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) 
    UIView.animate(withDuration: 0.1, delay: 0, options: .curveEaseInOut) 
        self.theView.transform = CGAffineTransform(scaleX: 1, y: 1)
    


override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) 
    UIView.animate(withDuration: 0.1) 
        self.theView.transform = CGAffineTransform(scaleX: 1, y: 1)
    

theView 几乎就是这里的整个cell。但是,添加此内容后,我的collectionView 中的didSelectItemAt 不再触发。知道我在这里做错了什么吗?它可以在没有override-sn-ps 的情况下工作。

补充:我实际上希望有一个像 App-Store 一样的动画(只有点击动画,没有过渡!)

如果您需要更多信息,请告诉我!

【问题讨论】:

【参考方案1】: 覆盖时忘记调用super

例如:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) 
    super.touchesBegan(touches, with: event)
    ....

【讨论】:

以上是关于覆盖单元格中的触摸后,Swift CollectionView didSelectItemAt 不再工作的主要内容,如果未能解决你的问题,请参考以下文章

当触摸单元格中的自定义按钮时,我们如何知道表格中触摸了哪个单元格?

UITableView 自定义单元格中的 UIButton 触摸无法正常工作

处理单元格中的 UIImageView 触摸时出错?

如何在 Tableview 单元格中获取 UIButton 的位置,并在 Swift 中添加目标?

自定义 `UITableViewCell` 中的 UIImageView 触摸功能

Swift:Tableview 中特定单元格中的 addSublayer 不是每个单元格