我正在尝试用自定义注释替换蓝色'currentLocation'点。该代码运行良好(我只是实现了viewForAnnotation并循环使用它,用自定义图像替换了类MKUserLocation的注释)。
但是,一旦我替换了注释,用户的当前位置就会停止更新。因此停止调用所有相关函数(如didUpdateUserLocation)。这会导致很多问题。我尝试在MKUserLocation Custom View not moving!实现各种代码块,但我无法让它工作。经过广泛的谷歌搜索和stackoverflow搜索后,我什么都没有。
有没有人能解决这个问题?
以下是viewForAnnotation方法的代码:
_userDot是MapScreen.m中的一个实例变量(所有这些代码所在的位置)。它在viewDidLoad中分配,类型为MKAnnotationView。基本上我不能只删除注释,所以我想把它设置为一个不可见的图像(目前1x1用于调试)。
- (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]]) {
//Initialize a new MKAnnotationView using the current userLocation annotation
//Then make it invisible (because we are cheap like that)
//TODO: Make it actually invisible (right now it is 1x1 for debugging)
if (_userDot)
{
_userDot.annotation = annotation;
_userDot.image = [UIImage imageNamed:@"mister_taco"];
_userDot.frame = CGRectMake(1, 1, 1, 1);
return _userDot;
}
else
return nil;
}
else {*/
return nil;
//}
}
谢谢, 布赖恩