【问题标题】:Mapview refresh not working地图视图刷新不起作用
【发布时间】:2011-09-20 06:24:02
【问题描述】:

我正在显示 2 个地点之间的路线。我的项目是一个基于导航的项目。在viewWillAppear: 方法中,我使用位置管理器跟踪用户的当前位置。在里面 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation方法我得到用户当前位置的坐标。

我用这个画地图。现在,当我返回上一个视图并返回地图视图时,它不会加载用户位置。它不调用- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 方法。

我该如何纠正这个问题?每次来这堂课我都需要获取地图路线。

提前致谢

【问题讨论】:

  • 您是在设备上还是在模拟器中看到这个问题?模拟器并不总是定期发布位置更新。
  • 仅在模拟器中。它显示的当前位置是库比蒂诺。那是 k,但我第二次点击“地图”按钮时它不会再次上传位置。

标签: iphone objective-c mkmapview ios4


【解决方案1】:

我也将用这个来回答我自己的问题:

我看到了有关如何重置视图、重绘图层等的帖子。我对这种语言相当(不是新手)缺乏经验,所以我所做的只是一个 hack,但它确实有效。我希望您在必要时使用它,但要找到更好的解决方案。

视图控制器:

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],2587600.0, 2587600.0);

}

- (void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    mapView.region = MKCoordinateRegionMakeWithDistance([mapView centerCoordinate],5.0, 5.0);
}

所以当视图离开时,嗯...视图,然后地图会放大很远。当视图返回视图时,数据会重新加载,瞧。您的里程可能会有所不同,但这种方法非常适合我需要它做的事情。

而且这根本不是一个刺耳的效果。它是无缝的。从 UI 的角度来看,没有任何变化。

干杯! 罗伯特

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多