拦截地图手势
通过私有类去找私有手势
不推荐使用该方法,但是也是我想出来的奇技淫巧,所以就记下来了
在[文章三][link01]中我们可以通过View Tree去找到ContentView,所以说也可以通过该View找到MKMapKit默认存在的手势接收器 _MKUserInteractionGestureRecognizer,如下代码
1 | - (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray<MKAnnotationView *> *)views { |
通过对其State添加KVO即可接收到地图手势的触发状态,并且进行逻辑判断
1 | //Normal Gesture |
共同触发接收器
通过添加新的GestureRecognizer来监听手势,通过设置代理 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 来同时触发
1 | - (void)monitorGesture { |