首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要mapView而不是updateLocation

需要mapView而不是updateLocation
EN

Stack Overflow用户
提问于 2015-03-02 23:02:49
回答 1查看 59关注 0票数 0

我得到了mapView,以及它的委托方法

代码语言:javascript
复制
func mapView(mapView: MKMapView!, didUpdateUserLocation userLocation: MKUserLocation!) {
    mapView.userTrackingMode = MKUserTrackingMode.None
    var eye = CLLocationCoordinate2DMake(userLocation.coordinate.latitude, userLocation.coordinate.longitude)
    var cam = MKMapCamera(lookingAtCenterCoordinate: eye, fromEyeCoordinate: eye, eyeAltitude: 10000)

    UIView.animateWithDuration(1, animations: { () -> Void in
        mapView.camera = cam
    })
}

它以某种随机的方式工作。它在视图加载时执行,然后当我将地图滚动到另一个国家或城市并缩放时,它可以(有时,现在总是)将我返回到当前位置。这很奇怪,因为我的当前位置没有改变,委托也不应该执行。我需要做的,不知何故,这件事没有发生。所以我想让我的地图缩放到当前位置时,只有当位置发生变化,否则我需要有免费的滚动地图。

EN

回答 1

Stack Overflow用户

发布于 2015-03-02 23:29:17

您必须将控制器设置为CLLocationManagerDelegate,然后声明一个变量,如下所示:

var locationManager:CLLocationManager = CLLocationManager()

然后在你的viewDidLoad方法中:

代码语言:javascript
复制
    override func viewDidLoad() {
    super.viewDidLoad()
    self.locationManager.delegate = self
    self.locationManager.stopUpdatingLocation()

应该防止调用func mapView(mapView: MKMapView!, didUpdateUserLocation userLocation: MKUserLocation!)

请注意,您必须重新启用它,以防您需要使用您的坐标更新地图中心,而不是手动滚动到您的实际位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28812922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档