2016-10-16 13 views
5

我有一個swift應用程序與MapView。這是我對故事板設置的地圖:是否有任何允許僅將MKMapView縮放到特定區域的方法,同時禁用任何其他用戶交互?

而且,在代碼中我做:

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不起作用?

回答

3

添加以下代碼雙擊操作方法

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的對象。

希望這會解決你的問題:)

+0

hm但我怎麼能通過mapView到雙擊操作方法?目前該地圖在我的tableView中,所以我在'cellForRowAt'方法中使用它,而不是在:|之外 – user3766930

相關問題