关于重写hitTest,拦截runLoop响应

iOS设备的响应机制是,触发事件后,事件添加runLoop队列中,事件处理时,一层一层往下找对应触发事件的View.

现在有这么一种情况:日历点击

外层月份用的是collectionView,月份内的天用的也是collectionView,当选择月份cell时,存在这种情况,误点击到天的Cell,导致触发的是天Cell的代理方法,要求就是点击月份,在月份cell触发而不在天cell触发,这样就需要在事件响应时,在月份cell处进行截断,不会向下触发天Cell.

在月份cell中重写hitTest方法:

convertPoint转换为相对点位,判断点击的范围是否在月份cell上,如果是,则直接返回月份cell自身,这样就达到了拦截的作用

关于重写hitTest,拦截runLoop响应_第1张图片


关于重写hitTest,拦截runLoop响应_第2张图片
日历需求

你可能感兴趣的:(关于重写hitTest,拦截runLoop响应)