Swift,iOS的点击事件传递与判断

诠释8023
  • 28

clipboard.png
图片整个是一个cell,cell里面有个容器控件UICollectionView,UICollectionView里面有多张图片,图片能响应点击事件,被点击后就会放大预览,当图片没放满,点击灰线以及黄色方框的区域时,需要响应cell的didSelectRowAtIndexPath这个方法,现在我有两个思路,一个是重写了hitTest方法,但是需要判断当前被点击的坐标是哪个控件,而且hitTest会被多次调用,实现比较麻烦,还有一个思路是在没有放满的位置也放上一个按钮响应点击,但是这样灰线的位置就无法满足产品需求,这个地方与新浪微博的比较相似,求指导一下思路

回复
阅读 4k
1 个回答

首先didSelectRowAtIndexPath 是 tableView 的方法,collectionView 应该是didSelectItem...

其次,给图片 userInteractionEnabled = YES,然后 addGestureRecognizer:[[UITapGestureRecognizer allo] initWithTarget...]就行了。这样的话,点图片就到响应tapGestureRecognizer的事件,点其他区域自然就到didSelectItemAtIndexPath...了。

宣传栏