IPhone - 从MKMapView中删除'currentLocation'蓝点

时间:2012-02-29 02:09:18

标签: iphone objective-c ios cocoa-touch mapkit

我正在尝试用自定义注释替换蓝色'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;
    //}
}

谢谢, 布赖恩

0 个答案:

没有答案