【发布时间】:2012-11-29 16:30:49
【问题描述】:
这与该主题的大多数问题有点相反。我的问题是没有让用户的位置显示;它正在停止显示。
我有一个带有 MKMapView 的视图。我将其区域设置为等于用户当前位置,然后将其设置为不显示用户位置:
- (void)viewDidLoad
{
[super viewDidLoad];
AppDelegate *appDelegate=(id)[[UIApplication sharedApplication] delegate];
[self.mapView setShowsUserLocation:NO];
[self.mapView setRegion:MKCoordinateRegionMakeWithDistance([appDelegate.locationManager location].coordinate, 1000, 1000)];
[self.mapView setUserTrackingMode:MKUserTrackingModeNone];
/*Unrelated code*/
}
即使我将此代码移至 ViewWill/DidAppear,它也不起作用。
我做错了什么?我已经测试了 self.mapView 存在并且不为空——我什至运行了一个调试器命令“po [self.mapView removeFromSuperview]”来确认我有正确的 MKMapView(它消失了,正如预期的那样)。
【问题讨论】:
-
你检查过 [self.map showsUserLocation] 的输出吗?如果它返回“否”,那么您在那里的任务已经奏效,并且其他东西正在显示您的位置。也许你已经设置了跟踪模式,需要用
setUserTrackingMode:animated取消设置 -
它返回 0,所以我不知道发生了什么。这个视图每次都是新创建的,我不使用跟踪模式......甚至添加 setUserTrackingMode:MKUserTrackingModeNone 也无济于事。
-
作为附加信息,它显示的位置不会随着时间的推移而更新。 (我有另一个地图视图就是这样做的,所以我可以看到它使用的位置是错误的)。