繁体   English   中英

有没有办法允许只将MKMapView缩放到特定区域,同时禁用任何其他用户交互?

[英]is there any way of allowing zooming MKMapView only to a specific region, while disabling any other user interaction?

我有一个带有MapView的swift应用程序。 这些是我在地图故事板上的设置:

在此输入图像描述

另外,在我正在做的代码中:

let regionRadius: CLLocationDistance = 10000
let initialLocation = CLLocation(latitude: latitude, longitude: longitude)
centerMapOnLocation(initialLocation, map: cell.mapView, radius: regionRadius)
cell.mapView.scrollEnabled = false
cell.mapView.rotateEnabled = false

我的方法centerMapOnLocation最初将地图置于特定位置的中心位置:

func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
    let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
                                                              radius * 2.0, radius * 2.0)
    map.setRegion(coordinateRegion, animated: true)
}

我想只允许用户放大/缩小到精确的gps坐标。

目前用户无法滚动地图,但他可以旋转它,也可以 - 他可以在地图上的任何地方双击,它将在那里放大。

我想禁用这些选项并产生效果,当用户双击地图(或捏合)时 - 它只会缩放到初始位置。

我怎么能这样做,而且 - 为什么rotateEnabled = false不起作用?

在双击操作方法中添加以下代码

var annotationPoint = MKMapPointForCoordinate(zoomToLocation.coordinate)
var zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1)
mapView.setVisibleMapRect(zoomRect, animated: true)

这里zoomToLocation是你想要的CLLocation,mapView是MKMapView的对象。

希望这会解决你的问题:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM