易于重现: - 创建一个新项目 - 在屏幕上放置一个MKMapView - 尝试用两根手指旋转
它稍微旋转并停止,当你松开手指时,它会回到原来的位置。
如何让它保持旋转状态? 并尽可能多地旋转?
我使用的是最新的iOS(8.something),iPhone 6模拟器和Swift。
答案 0 :(得分:3)
我弄明白了这个问题。 实际上没有解决方案,发生的事情是如果地图区域太大,MKMapView不允许你保持旋转。 如果放大,则可以正常旋转。
答案 1 :(得分:1)
请试试这个 全球声明:
let regionRadius: CLLocationDistance = 1000
在viewdidload中:
let initialLocation = CLLocation(latitude: 21.282778, longitude: -157.829444)
centerMapOnLocation(initialLocation)
然后创建一个帮助类:
func centerMapOnLocation(location: CLLocation) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
regionRadius * 2.0, regionRadius * 2.0)
mapview.setRegion(coordinateRegion, animated: true)
}
答案 2 :(得分:0)
尝试使用MKMapView的rotateEnabled属性:
rotateEnabled - 一个布尔值,指示是否使用地图摄像机的标题信息。
声明
SWIFT var rotateEnabled:Bool
当此属性设置为YES且有效摄像机与地图关联时,摄像机的航向角用于围绕其中心点旋转地图平面。当此属性设置为NO时,将忽略摄像机的航向角,并始终定向地图,以使真北位于地图视图的顶部。
答案 3 :(得分:0)
您必须覆盖CLLocationManager.didUpdateLocations
(CLLocationManagerDelegate的一部分)才能在位置管理员检索当前位置时收到通知,并且不在那里执行任何操作:
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
// Don't do update the map to the new location
}