Хорошо, у меня есть несколько контактов на картеите. Эти штыри показывают разные типы аттракционов. (Например, парки, фермы и т. Д.)Пользовательская аннотация, не отображающая всех
Я хочу добавить пользовательские изображения для этих различных типов контактов. Парки имеют изображение парка и наоборот.
Однако, когда я добавил, не все изображения успешно отображаются. Например, в парках он должен иметь 5 контактов, но изображение получилось только в двух контактах, в то время как другие 3 - по умолчанию.
Но если я использовал цвета, чтобы их отличить. Например, [pinsetPinColor:MKPinAnnotationColorGreen];
Это работает! Кто-нибудь знает, в чем проблема?
Соответствующие коды ниже. Скажи мне, если тебе нужно больше. благодаря!
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
if ([annotation isKindOfClass:MKUserLocation.class]) {
//user location view is being requested,
//return nil so it uses the default which is a blue dot...
return nil;
}
//NSLog(@"View for Annotation is called");
MKPinAnnotationView *pin=[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:nil];
pin.userInteractionEnabled=TRUE;
MapEvent* event = (MapEvent*)annotation;
NSLog(@"thetype: %@", event.thetype);
if ([event.thetype isEqualToString:@"adv"]) {
//[pin setPinColor:MKPinAnnotationColorGreen];
pin.image = [UIImage imageNamed:@"padv.png"];
}
else if ([event.thetype isEqualToString:@"muse"]){
//[pin setPinColor:MKPinAnnotationColorPurple];
pin.image = [UIImage imageNamed:@"pmuse.png"];
}
else if ([event.thetype isEqualToString:@"nightlife"]){
pin.image = [UIImage imageNamed:@"pnight.png"];
}
else if ([event.thetype isEqualToString:@"parks"]){
pin.image = [UIImage imageNamed:@"ppark.png"];
}
else if ([event.thetype isEqualToString:@"farms"]){
pin.image = [UIImage imageNamed:@"pfarm.png"];
}
else {
[pin setPinColor:MKPinAnnotationColorRed];
}
pin.canShowCallout = YES;
pin.animatesDrop = YES;
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self action:@selector(clickAnnotation:) forControlEvents:UIControlEventTouchUpInside];
[rightButton setTitle:event.uniqueID forState:UIControlStateNormal];
pin.rightCalloutAccessoryView = rightButton;
return pin;
}
Heys! спасибо за быстрый ответ, но им действительно возникают проблемы с контактами, а не с выносками. Есть идеи? – funatsg