Ios 4 - Mkmap放置自定义注释问题

时间:2011-01-19 10:58:12

标签: iphone mkmapview mkannotationview

我正在研究MKMap View,它根据位置坐标和其他自定义注释显示当前位置。它在Iphone 3gs上正确显示,但在iphone 4.0或更高版本上,它不会每次都显示自定义注释(随机显示只有绿色引脚而不是另一个)。可能是什么问题?在ios 4.0及以上版本有问题吗?如果是这样我们怎么解决呢。任何人都可以帮助我

由于

来自viewForAnnotation方法的代码......

if ([annotation isMemberOfClass:[MKUserLocation class]]) 
{ 
    return nil; 
} 

if (annotation==self.normalAnnotation) 
{ 
    NSLog(@"green pin"); 
    MKPinAnnotationView *annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"NormalAnnotation"] autorelease]; 
    annotationView.canShowCallout = NO; 
    annotationView.pinColor = MKPinAnnotationColorGreen; 
    return annotationView; 
} 
else 
{ 
    NSLog(@"Custom pin"); 
    Marker *obj = [database getMarkerWithName:[annotation title]]; 
    MKAnnotationView *newAnnotation=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"annotation1"]autorelease]; 
    newAnnotation.image = [UIImage imageNamed:obj.markerImage]; 
    newAnnotation.canShowCallout=YES; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 
    [button addTarget:self action:@selector(checkButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    [button setTag:obj.markerID]; 
    newAnnotation.rightCalloutAccessoryView=button; 
    //annotation.annotationObj = newAnnotation; 
    return newAnnotation; 
}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,发生这种情况是因为引脚正在重新绘制,因为[location manager stopUpdatingLocation]无法正常工作。所以使用bool变量我停止调用一次又一次初始化Mapview的类。

@aBitObvious:非常感谢你的支持,谢谢......