UICollectionViewCell 向 UICollectionView didSelect 发出信号
Posted
技术标签:
【中文标题】UICollectionViewCell 向 UICollectionView didSelect 发出信号【英文标题】:UICollectionViewCell signal to UICollectionView didSelect 【发布时间】:2015-10-01 22:01:09 【问题描述】:在我的UICollectionView
中的UICollectionViewCell
s 之上,我覆盖了一个拦截触摸的UIButton
,这样我就可以更细致地响应触摸事件。问题是现在集合视图不再收到didSelectItemAtIndexPath
消息。 (出于显而易见的原因......按钮已经吸收了触摸并且没有向集合视图发出该项目被选中的信号。)
有没有办法向集合视图发出单元格被选中的信号?我见过类似的问题,但似乎没有一个给出令人信服的答案。
【问题讨论】:
【参考方案1】:您可以覆盖 UIView [和子类] 上的 pointInside:withEvent:
消息并返回 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
【讨论】:
我真的很喜欢这个解决方案——不仅因为它解决了我的问题,而且我学会了如何传播触摸。谢谢!以上是关于UICollectionViewCell 向 UICollectionView didSelect 发出信号的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionViewCell 向 UICollectionView didSelect 发出信号
向 UICollectionViewCell 添加覆盖视图 - 不断覆盖
如何使用清晰的背景颜色向 UICollectionViewCell 添加阴影?
具有动态高度的 UICollectionViewCell 使用 NSURL 进行图像下载