使用自定义注释时,我无法看到蓝色当前位置点
- (MKAnnotationView *) mapView:(MKMapView *) mapView viewForAnnotation:(id<MKAnnotation> ) annotation {
MKAnnotationView *customAnnotationView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil] autorelease];
UIImage *pinImage = [UIImage imageNamed:@"ann.png"];
[customAnnotationView setImage:pinImage];
customAnnotationView.canShowCallout = YES;
//UIImageView *leftIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ann.png"]];
//customAnnotationView.leftCalloutAccessoryView = leftIconView;
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(showDetails:) forControlEvents:UIControlEventTouchUpInside];
customAnnotationView.rightCalloutAccessoryView = rightButton;
return customAnnotationView;
}
答案 0 :(得分:8)
if (annotation == map.userLocation) {
return nil;
}
添加此。:d
答案 1 :(得分:2)
我现在得到了答案。只需要在返回customAnnotationView之前的末尾将以下代码添加到上面的代码中;
if(annotation == mapView.userLocation){
的NSLog(@ “无”);返回零; }
谢谢:)
答案 2 :(得分:1)
当前用户位置“蓝点”的可见性与自定义注释无关。要显示用户的当前位置,您需要将showsUserLocation
的{{1}}属性设置为MKMapView
。例如:
YES
或:
yourMapView.showsUserLocation = YES;
了解MapKit显示当前用户位置的方式有一个怪癖:在模拟器中,UserLocation将始终成为Apple在美国加利福尼亚州库比蒂诺的总部。但是,它可以在设备上正常工作。
已编辑添加:
正如Terente指出的那样,您必须小心不要“吃掉”用户的位置注释,因此必须测试以查看您正在处理的注释是否是用户的位置。我用以下内容包装逻辑:
[yourMapView showsUserLocation] = YES;
if ([annotation isKindOfClass:[MapLocation class]]) {
}
是我的注释类。