我有一个占据大部分屏幕的自定义注释视图。在里面我有一个 UITableView 和一些标签。
UITableView 正确处理单元格选择。但是,如果我双击 UITableView 或自定义注释视图上的任何位置,地图将会缩放。
首先,我很想了解这是如何发生的。其次,如何阻止它发生。
我想我已经想通了。正在发生的事情是 MKMapView 附加了手势识别器。
我通过继承 MKMapView 并实现 shouldReceiveTouch 解决了部分问题。双击仍然可以通过注释视图,但这不是问题。真正的可用性问题是单击。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
UIView * v = touch.view;
while( v ){
if( [v isKindOfClass:[SPAnnotationView class]] ){
SPAnnotationView * aV = (SPAnnotationView *)v;
if( [aV isExtendedAnnotation]){
return NO;
}
}
v = v.superview;
}
return [super gestureRecognizer:gestureRecognizer shouldReceiveTouch:touch];
}