试图用 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,则地图视图将为您完成工作。您甚至不需要实现位置管理器委托方法。