2016-04-28 3 views
1

Я переключился с Google Maps api на iOS, чтобы здесь отображал api для iOS. Я бы хотел отключить панорамирование/прокрутку карты во время масштабирования, чтобы сохранить местоположение gps центральной точки одинаковым. Любое предложение? Заранее спасибо.Отключить панорамирование при масштабировании

ответ

0

Вы можете выполнить этот прецедент, используя комбинацию NMAMapGestureDelegate и NMAMapViewDelegate.

Например, вы можете реализовать метод обработчика - (void)mapView:(NMAMapView *)mapView didReceivePinch:(float)pinch atLocation:(CGPoint)location;, чтобы добавить дополнительный код, чтобы отключить жесты, которые вы хотите заблокировать. И затем снова включите жесты, как только жест щепотки закончится.

Что-то, как это должно сделать трюк, вы, возможно, придется играть с реализацией немного, чтобы заставить его работать, как вы хотели:

- (void)mapView:(NMAMapView *)mapView didReceivePinch:(float)pinch atLocation:(CGPoint)location 
{ 
    [mapView disableMapGestures:(NMAMapGestureTypePan | NMAMapGestureTypeTwoFingerPan)]; 

    // execute default pinch behaviour 
    [mapView.defaultGestureHandler mapView:mapView didReceivePinch:pinch atLocation:location]; 
} 

...

- (void)mapViewDidEndMovement:(NMAMapView *)mapView 
{ 
    [mapView enableMapGestures:NMAMapGestureTypeAll]; 
} 

Вы можете посмотрите на NMAMapView- (NSInteger)respondToEvents:(NSInteger)events withBlock:(NMAMapEventBlock)block также. Возможно, ответ на событие NMAMapEventGestureEnded с использованием respondToEvents может работать лучше для вашего прецедента.

Дополнительная информация:

Map Gestures

NMAMapGestureDelegate

NMAMapViewDelegate

Map Event Blocks

+0

Я уже пытался отключить жест во время выполнения щепотку. Проблема в том, что если вы зажимаете края, т. Е. Не в центре карты. Центр карты уходит. В google maps iOS sdk тоже может быть достигнуто с помощью свойства allowScrollGesturesDuringRotateOrZoom класса gmsuisettings. –

+0

Похоже, вам следует попробовать использовать 'NMAMap'' transformCenter' и 'fixedMapCenterOnMapRotateZoom' – AndrewJC

+0

Привет, Андрей, спасибо за ваши быстрые ответы. Хотя свойство fixedMapCenterOnMapRotateZoom определено в документации, но, к сожалению, похоже, что это свойство было удалено в SDK версии 3.1.1. –

Смежные вопросы