缩放时禁用平移

时间:2016-04-28 13:10:02

标签: ios objective-c here-api

我从iOS的谷歌地图api切换到这里的iOS地图api。我想在缩放时禁用地图的平移/滚动,以保持中心点的gps位置相同。有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

你可以使用 [MPAMapView disableMapGestures:] api禁用平移/滚动。 详细信息可以在https://developer.here.com/mobile-sdks/documentation/ios/topics/map-gestures.html

找到

答案 1 :(得分: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。使用NMAMapEventGestureEnded响应respondToEvents事件可能会更好地适用于您的用例。

更多信息:

Map Gestures

NMAMapGestureDelegate

NMAMapViewDelegate

Map Event Blocks