我正在研究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;
}
答案 0 :(得分:0)
我解决了这个问题,发生这种情况是因为引脚正在重新绘制,因为[location manager stopUpdatingLocation]无法正常工作。所以使用bool变量我停止调用一次又一次初始化Mapview的类。
@aBitObvious:非常感谢你的支持,谢谢......