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