尝试使用Apple Map填充屏幕

时间:2016-04-12 09:25:15

标签: ios swift rotation mkmapview

所以在我的应用程序上我有一个屏幕,我想显示一个地图。抓住这里是地图需要在用户旋转屏幕时自动旋转。与在任何地图上按指南针按钮时类似。

我编写了创建地图并显示地图并用指南针旋转的第一部分。

  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个屏幕截图。 enter image description here

问题是它的显示方式。

问题1:当我旋转时,有空白空间,因为我的地图不会缩放。屏幕尺寸。我该如何解决这个问题?

问题2:轮换非常暴躁。有没有办法让它更顺畅?

1 个答案:

答案 0 :(得分:3)

你正在努力做到这一点。您可以使用MKMapView的{​​{3}}属性。

如果您将此属性设置为MKUserTrackingModeFollowWithHeading,那么mapview将为您完成工作。您甚至不需要实现位置管理器委托方法。