试图用 Apple Map 填满屏幕
Trying to fill a screen with Apple Map
所以在我的应用程序上有一个屏幕,我想在其中显示地图。这里需要注意的是地图需要在用户旋转屏幕时自动旋转。类似于在任何地图上按罗盘按钮。
我已经编写了创建地图、显示地图和使用罗盘旋转的第一部分代码。
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))
}
这里有 4 个屏幕截图,展示了当我以 4 个不同的角度旋转时屏幕的外观。
问题是它的显示方式。
问题 1: 当我旋转时,有白色空白 space 那是因为我的地图无法缩放。到屏幕尺寸。我该如何解决?
问题二:旋转很乱。有没有办法让它更顺畅?
你这样做很辛苦。您可以使用 userTrackingMode
属性 的 MKMapView
.
如果您将此 属性 设置为 MKUserTrackingModeFollowWithHeading
,则地图视图将为您完成工作。您甚至不需要实现位置管理器委托方法。
所以在我的应用程序上有一个屏幕,我想在其中显示地图。这里需要注意的是地图需要在用户旋转屏幕时自动旋转。类似于在任何地图上按罗盘按钮。
我已经编写了创建地图、显示地图和使用罗盘旋转的第一部分代码。
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))
}
这里有 4 个屏幕截图,展示了当我以 4 个不同的角度旋转时屏幕的外观。
问题是它的显示方式。
问题 1: 当我旋转时,有白色空白 space 那是因为我的地图无法缩放。到屏幕尺寸。我该如何解决?
问题二:旋转很乱。有没有办法让它更顺畅?
你这样做很辛苦。您可以使用 userTrackingMode
属性 的 MKMapView
.
如果您将此 属性 设置为 MKUserTrackingModeFollowWithHeading
,则地图视图将为您完成工作。您甚至不需要实现位置管理器委托方法。