2016-04-12 2 views
0

Итак, на моем приложении у меня есть экран, на котором я хочу отобразить карту. Поймать здесь - карта должна автоматически вращаться, когда пользователь поворачивает экран. Аналогично тому, как вы нажимаете кнопку компаса на любой карте.Попытка заполнить экран 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 разных ангелов. enter image description here

Проблема заключается в том, как ее отображение.

Выпуск 1: Когда я вращаюсь, есть пустое пустое пространство, и это потому, что моя карта не будет масштабироваться. размер экрана. Как я могу это решить?

Выпуск 2: Вращение очень капризное. Есть ли способ сделать его более плавным?

ответ

3

Вы делаете это с трудом. Вы можете использовать свойство userTrackingModeMKMapView.

Если вы установили это свойство в MKUserTrackingModeFollowWithHeading, то карта будет работать для вас. Вам даже не нужно внедрять методы делегирования менеджера местоположений.

+0

Да работает. Благодаря!! Я скоро приму этот ответ, как только переполнение стека позволит –