我正在尝试解决一个我不确定如何解决的问题。在我的应用程序中,本地图套件启动时,我会在用户的当前位置放置一个图钉。 Mapkit 委托(delegate)给 viewForAnnotation,它设置了工作正常的图钉颜色。
我遇到的问题是我无法区分注释,因此我可以对“用户添加的位置”和“当前位置”引脚应用不同的颜色。我想添加一个按钮,以便他们可以删除他们添加的任何图钉,但无法删除他们的“当前位置”图钉。我似乎不知道如何提取任何可识别的信息,例如图钉的标题或副标题。
预先感谢您的帮助。
这是我的代码...
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
NSLog(@"OAAssignmentGPSViewController.m : mapView viewForAnnotation");
if([annotation isKindOfClass: [MKUserLocation class]])
return nil;
NSLog(@" mapView.userLocation.title = %@", self.mapView.userLocation.title);
static NSString* annotationIdentifier = @"currentlocation";
MKPinAnnotationView *myPinView = (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];
if (!myPinView) {
myPinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil] ;
myPinView.pinColor = MKPinAnnotationColorRed;
myPinView.canShowCallout = YES;
myPinView.animatesDrop = YES;
NSLog(@"mapView.description %@", self.mapView.userLocation.title);
if( annotation != self.mapView.userLocation)<<<<<----how do I check for UserLocation
{
myPinView.pinColor = MKPinAnnotationColorGreen;
myPinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
}
return myPinView;
}
最佳答案
为其他新手更新此内容,这就是答案......
if ([annotation isKindOfClass:[MKUserLocation class]]) ....{
this is the current location pin
}else {
these are you custom locations pins
}
关于ios - 区分 UserLocation Pin 和用户添加的 Pin 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073871/