Des*_*ond 1 uiscrollview mapkit ios swift
我似乎无法找到我的问题的最佳答案。
我有这个“OK”但不知道的代码
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
print(mapView.camera.altitude)
if mapView.camera.altitude < 800.00 && !modifyingMap
{
modifyingMap = true
mapView.camera.altitude = 800.00
modifyingMap = false
}
}
Run Code Online (Sandbox Code Playgroud)
我想在我的应用程序中将用户的最大和最小缩放限制到我的地图。
非常感谢任何指向 SO 答案的链接!
谢谢!
您可以使用mapView:regionDidChangeAnimated:委托方法来侦听区域更改事件,如果该区域比您的最大/最小区域更宽/更窄,请将其设置回最大/最小区域,setRegion:animated:以向您的用户指示他们无法缩小/那么远。
例如
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
let coordinate = CLLocationCoordinate2DMake(mapView.region.center.latitude, mapView.region.center.longitude)
var span = mapView.region.span
if span.latitudeDelta < 0.002 { // MIN LEVEL
span = MKCoordinateSpanMake(0.002, 0.002)
} else if span.latitudeDelta > 0.003 { // MAX LEVEL
span = MKCoordinateSpanMake(0.003, 0.003)
}
let region = MKCoordinateRegionMake(coordinate, span)
mapView.setRegion(region, animated:true)
}
Run Code Online (Sandbox Code Playgroud)
试试这个:
mapView.cameraZoomRange = MKMapView.CameraZoomRange(
minCenterCoordinateDistance: 1000, // Minimum zoom value
maxCenterCoordinateDistance: 10000) // Max zoom value
Run Code Online (Sandbox Code Playgroud)