2016-04-28 186 views
1

我從iOS的Google地圖API切換到這裏地圖API for iOS。我想在縮放時禁用平移/滾動地圖,以保持中心點的GPS位置相同。任何建議?提前致謝。縮放時禁用平移

回答

0

您可以使用NMAMapGestureDelegateNMAMapViewDelegate的組合來完成此用例。

例如,您可以實施NMAMapGestureDelegate- (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。使用respondToEvents可能對NMAMapEventGestureEnded事件做出響應可能對您的使用情況更好。

更多信息:

Map Gestures

NMAMapGestureDelegate

NMAMapViewDelegate

Map Event Blocks

+0

我已經嘗試過禁用的手勢,同時執行壓力。問題是,如果你捏在邊緣,即不在地圖的中心。地圖中心移開。在谷歌地圖iOS sdk相同可以通過gmsuisettings類的allowScrollGesturesDuringRotateOrZoom屬性來實現。 –

+0

這聽起來像你應該嘗試使用'NMAMap'' transformCenter'和'fixedMapCenterOnMapRotateZoom' – AndrewJC

+0

嗨安德魯,感謝您的快速響應。儘管fixedMapCenterOnMapRotateZoom屬性是在文檔中定義的,但不幸的是,它看起來像在3.1.1版中刪除了該屬性 –