UICollectionViewCell 向 UICollectionView didSelect 发出信号

UICollectionViewCell signal to UICollectionView didSelect

在我的 UICollectionView 中的 UICollectionViewCell 之上,我覆盖了一个 UIButton 来拦截触摸,这样我就可以更精细地响应触摸事件。问题是现在集合视图不再收到 didSelectItemAtIndexPath 消息。 (出于显而易见的原因......按钮吸收了触摸,并且没有向集合视图发出该项目已被选中的信号。)

有没有办法向集合视图发出单元格已被选中的信号?我见过类似的问题,但 none 似乎给出了令人信服的答案。

您可以覆盖 UIView [和子类] 上的 pointInside:withEvent: 消息和 return false 以继续传播触摸事件。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instm/UIView/pointInside:withEvent:

class PassThroughButton: UIButton {
  override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
    // do something
    // then continue event propigation
    return false
  }
}