2016-04-28 29 views
1

Ich wechselte von Google Maps API für iOS zu hier Karten API für iOS. Ich möchte das Schwenken/Scrollen der Karte beim Zoomen deaktivieren, um die GPS-Position des Mittelpunkts gleich zu halten. Irgendein Vorschlag? Danke im Voraus.Panning beim Zoomen deaktivieren

Antwort

0

Sie können diesen Anwendungsfall mit einer Kombination von NMAMapGestureDelegate und NMAMapViewDelegate erreichen.

Beispielsweise können Sie die Handlermethode NMAMapGestureDelegate- (void)mapView:(NMAMapView *)mapView didReceivePinch:(float)pinch atLocation:(CGPoint)location; implementieren, um zusätzlichen Code hinzuzufügen, um die Gesten zu deaktivieren, die Sie blockieren möchten. Aktivieren Sie die Gesten erneut, sobald die Pinch-Geste beendet ist.

So etwas sollte es tun, können Sie bei der Umsetzung ein wenig spielen müssen, um es zum Laufen zu bringen, wie Sie möchten:

- (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]; 
} 

Sie können schau auch NMAMapView- (NSInteger)respondToEvents:(NSInteger)events withBlock:(NMAMapEventBlock)block. Es ist möglich, dass die Reaktion auf das Ereignis NMAMapEventGestureEnded mit respondToEvents möglicherweise besser für Ihren Anwendungsfall funktioniert.

Weitere Informationen:

Map Gestures

NMAMapGestureDelegate

NMAMapViewDelegate

Map Event Blocks

+0

Ich habe bereits versucht Geste zu deaktivieren, während Prise durchführen. Problem ist, dass wenn Sie auf Kanten, d. H. Nicht in der Mitte der Karte. Das Kartenzentrum bewegt sich weg. In Google Maps iOS SDK kann dies durch allowScrollGesturesDuringRotateOrZoom Eigenschaft der gmsuisettings Klasse erreicht werden. –

+0

Es klingt, als ob Sie versuchen sollten, 'NMAMap'' transformCenter' und 'fixedMapCenterOnMapRotateZoom' zu verwenden. – AndrewJC

+0

Hallo Andrew, vielen Dank für Ihre schnellen Antworten. Obwohl die Eigenschaft fixedMapCenterOnMapRotateZoom in der Dokumentation definiert ist, sieht es leider so aus, als wäre diese Eigenschaft in SDK ver 3.1.1 entfernt. –

Verwandte Themen