关于重写hitTest,拦截runLoop响应
2020-05-19 本文已影响0人
ZZ_军哥
iOS设备的响应机制是,触发事件后,事件添加runLoop队列中,事件处理时,一层一层往下找对应触发事件的View.
现在有这么一种情况:日历点击
外层月份用的是collectionView,月份内的天用的也是collectionView,当选择月份cell时,存在这种情况,误点击到天的Cell,导致触发的是天Cell的代理方法,要求就是点击月份,在月份cell触发而不在天cell触发,这样就需要在事件响应时,在月份cell处进行截断,不会向下触发天Cell.
在月份cell中重写hitTest方法:
convertPoint转换为相对点位,判断点击的范围是否在月份cell上,如果是,则直接返回月份cell自身,这样就达到了拦截的作用

