В моем представлении карты я использую длинный жест нажатия, чтобы нарисовать MKCircle на карте. Я бы хотел использовать двойной жест, чтобы удалить круг. Я добавляю двойной кран в качестве распознавателя жестов, и он работает правильно, однако, в то время как он удаляет круг, он также масштабирует бит каждый раз. Мне интересно, есть ли способ удалить масштаб по умолчанию двойным нажатием, оставив только мой собственный? Я не хочу отключать масштабирование всей карты только при двойном нажатии.MapView - отключить Doubletap Zoom
UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(getMapCoordinateFromTouch:)];
[self.mapView addGestureRecognizer:longGesture ];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(removeBoundary:)];
[tapGesture setNumberOfTapsRequired:2];
[tapGesture setNumberOfTouchesRequired:1];
tapGesture.delegate = self;
[self.mapView addGestureRecognizer:tapGesture];
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
-(void)removeBoundary:(UITapGestureRecognizer *)gesture
{
[self.mapView removeOverlays:self.mapView.overlays];
}
Дополнительная информация:
Было высказано предположение о том, что этот вопрос был похож на: Disable double tap zoom in MKMapView (iOS 6)
Однако, этот человек пытается отключить все двойные отводы, а не только по умолчанию. Я нашел код в этом вопросе, который, как я думал, может помочь здесь, но это не так. В этом потоке было указано, что вы можете прокрутить карту и удалить распознаватель жестов. Это, похоже, работает для распознавателей жестов, которые я могу добавить, но он не находит ни одного поведения Apple по умолчанию. Я запускаю следующий код после viewWillAppear (я также пробовал viewDidAppear), но точка останова показывает, что «жесты» равны нулю. Поэтому по какой-то причине в представлении нет жесты Apple по умолчанию.
NSArray *gestures = [self.mapView gestureRecognizers];
for (UIGestureRecognizer *recognizer in gestures)
{
if ([recognizer isKindOfClass:[UITapGestureRecognizer class]])
{
UITapGestureRecognizer *tap = (UITapGestureRecognizer *)recognizer;
if (tap.numberOfTapsRequired == 2)
[self.mapView removeGestureRecognizer:recognizer];
}
}
возможного дубликат [Отключить двойное нажатие увеличить в MKMapView (iOS 6)] (http://stackoverflow.com/questions/12521017/disable-double-tap-zoom-in-mkmapview-ios-6) –
Я объясняю как править выше, почему вопрос отличается от связанная версия. – C6Silver