位置标记未显示Swift 4

时间:2018-09-29 00:19:25

标签: ios swift mkmapview swift4 mkuserlocation

我正在尝试显示用户的当前位置,并将区域设置为其当前位置。

这是我的代码。

    @IBOutlet weak var mapView: MKMapView!

    var locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.locationManager.requestWhenInUseAuthorization()

        if CLLocationManager.locationServicesEnabled() {

            locationManager.delegate = self
            locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
            locationManager.startUpdatingLocation()

        }
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

        let locValue:CLLocationCoordinate2D = manager.location!.coordinate
        print("locations = \(locValue.latitude) \(locValue.longitude)")
        let userLocation = locations.last
        let viewRegion = MKCoordinateRegionMakeWithDistance((userLocation?.coordinate)!, 600, 600)
        self.mapView.setRegion(viewRegion, animated: true)
    }

会发生什么:

  1. 地图加载
  2. 地图区域设置为当前位置
  3. 地图区域将不断更新到当前位置
  4. 当前位置被打印到控制台上

什么不起作用:

  1. “蓝色”当前位置指示器没有出现。

如果您知道我需要做些什么才能使“蓝色”当前位置指示器出现,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要设置

mapView.showsUserLocation = true

viewDidLoad