所以在我的应用程序上我有一个屏幕,我想显示一个地图。抓住这里是地图需要在用户旋转屏幕时自动旋转。与在任何地图上按指南针按钮时类似。
我编写了创建地图并显示地图并用指南针旋转的第一部分。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingHeading()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func locationManager(manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
let rotation: Double = newHeading.magneticHeading * 3.14159 / 180
//let point: CGPoint = CGPointMake(0, -23)
print(rotation)
mapView.transform = CGAffineTransformMakeRotation(-CGFloat(rotation))
}
问题是它的显示方式。
问题1:当我旋转时,有空白空间,因为我的地图不会缩放。屏幕尺寸。我该如何解决这个问题?
问题2:轮换非常暴躁。有没有办法让它更顺畅?
答案 0 :(得分:3)
你正在努力做到这一点。您可以使用MKMapView
的{{3}}属性。
如果您将此属性设置为MKUserTrackingModeFollowWithHeading
,那么mapview将为您完成工作。您甚至不需要实现位置管理器委托方法。