Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 试图用苹果地图填充屏幕_Ios_Swift_Rotation_Mkmapview - Fatal编程技术网

Ios 试图用苹果地图填充屏幕

Ios 试图用苹果地图填充屏幕,ios,swift,rotation,mkmapview,Ios,Swift,Rotation,Mkmapview,因此,在我的应用程序中,我有一个屏幕,我想在其中显示地图。这里的关键是,当用户旋转屏幕时,地图需要自动旋转。类似于在任何地图上按指南针按钮 我已经编写了创建地图、显示地图和使用指南针旋转的第一部分 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. lo

因此,在我的应用程序中,我有一个屏幕,我想在其中显示地图。这里的关键是,当用户旋转屏幕时,地图需要自动旋转。类似于在任何地图上按指南针按钮

我已经编写了创建地图、显示地图和使用指南针旋转的第一部分

  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期:当我旋转时,会出现空白,这是因为我的地图无法缩放。屏幕大小。我怎样才能解决这个问题


第2期:旋转非常古怪。有没有办法让它变得更平滑呢?

你的方法很难做到这一点。您可以使用
MKMapView
的属性


如果将此属性设置为
MKUserTrackingModeFollowWithHeading
,则地图视图将为您执行此操作。您甚至不需要实现location manager委派方法。

这是一种非常困难的方法。您可以使用
MKMapView
的属性


如果将此属性设置为
MKUserTrackingModeFollowWithHeading
,则地图视图将为您执行此操作。您甚至不需要实现location manager委派方法。

是的,正在工作。谢谢一旦堆栈溢出允许它工作,我将很快接受这个答案。谢谢一旦堆栈溢出允许,我将很快接受这个答案