MapView не показывает местоположение - PullRequest
0 голосов
/ 10 июня 2018

В настоящее время я занимаюсь разработкой приложения для iOS, и одна из его функций включает в себя поиск достопримечательностей для ночной жизни.Однако при загрузке моего MapView текущее местоположение пользователя не отображается, даже если доступ к местоположению предоставлен.

Вот мой код:

import UIKit
import MapKit
import CoreLocation

class BarMapVC: UIViewController {



@IBOutlet weak var searchBtn: UIBarButtonItem!

@IBOutlet weak var doneBtn: UIBarButtonItem!

@IBOutlet weak var searchBar: UISearchBar!

@IBOutlet weak var locationBtn: UIButton!

@IBOutlet weak var barMapView: MKMapView!

var locationManager = CLLocationManager()
let authorizationStatus = CLLocationManager.authorizationStatus()
let regionRadius: Double = 1000

override func viewDidLoad() {
    super.viewDidLoad()
    searchBar.isHidden = true
    barMapView.delegate = self
    locationManager.delegate = self
    configureLocationServices()
    centerMapOnUserLocation()
}

@IBAction func searchBtnWasPressed(_ sender: Any) {
    searchBar.isHidden = false
}

@IBAction func doneBtnWasPressed(_ sender: Any) {
    dismiss(animated: true)
}

@IBAction func locationBtnWasPressed(_ sender: Any) {
    if authorizationStatus == .authorizedAlways || authorizationStatus == .authorizedWhenInUse {
        centerMapOnUserLocation()
    }
}
}

extension BarMapVC: MKMapViewDelegate {
    func centerMapOnUserLocation() {
        guard let coordinate = locationManager.location?.coordinate else { return }
        let coordinateRegion = MKCoordinateRegionMakeWithDistance(coordinate, regionRadius * 2.0, regionRadius * 2.0)
        barMapView.setRegion(coordinateRegion, animated: true)
    }
}

extension BarMapVC: CLLocationManagerDelegate {
    func configureLocationServices() {
        if authorizationStatus == .notDetermined {
            locationManager.requestAlwaysAuthorization()
        } else {
            return
        }
    }

    func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
        centerMapOnUserLocation()
    }

}

Я использую CLLocation Manager, соответствующий mapViewDelegate, а также имею все необходимые розетки.Что-то я делаю не так?

1 Ответ

0 голосов
/ 10 июня 2018

Вы можете установить это на виде карты:

barMapView.showsUserLocation = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...