2010-10-15 2 views
1

Я знаю, что его спрашивали много раз, но я просто не могу его получить. У меня есть моя карта, у меня добавлены аннотации, и я хотел бы добавить кнопки раскрытия в аннотации.добавление раскрываемых кнопок в аннотации mapview

я добавление аннотаций из массива в моем методе viewdidload, потянув в из текстового файла

NSURL *dataUrl = [NSURL URLWithString:@"http://nne.ezadspro.co.uk/cms/testmap.txt"]; 

NSString *fileString = [NSString stringWithContentsOfURL:dataUrl 
               encoding:NSUTF8StringEncoding 
                error:nil]; 
int count = 0; 
NSScanner *scanner = [NSScanner scannerWithString:fileString]; 

eventPoints = [[NSMutableArray array] retain]; 
Locations *event; 
NSString *line; 
NSArray *values; 
while ([scanner isAtEnd] == NO) { 
    [scanner scanUpToString:@"\n" intoString:&line]; 
    //skip the first line 
    if(count > 0) { 
     values = [line componentsSeparatedByString:@","]; 
     event = [[[Locations alloc] init] autorelease]; 
     event.latitude = [[values objectAtIndex:5] floatValue]; 
     event.longitude = [[values objectAtIndex:6] floatValue]; 
     //event.companyID = [[values objectAtIndex:0]intValue]; 
     event.title = [values objectAtIndex:1]; 
     event.subtitle = [values objectAtIndex:2]; 
     //event.magnitude = [[values objectAtIndex:4] floatValue]; 
     //event.depth = [[values objectAtIndex:5] floatValue]; 
     [eventPoints addObject:event]; 
    } 
    count++; 
    if(count == 300) { 
     //limit number of events to 300 
     break; 
    } 
} 
//UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 

[mapView addAnnotations: eventPoints]; 

это работает отлично, но, как я сказал, что я хочу добавить кнопки, теперь я видел в множественные потоки люди говорить о методе - (MKAnnotationView *) MAPview: (MKMapView *) MAPview viewForAnnotation: (идентификатор) аннотации {

но все, что я делаю с помощью этого метода, кажется, не работает, может кто-то пожалуйста, помогите мне на как я могу заставить его работать (как это называется?), я понятия не имею

я довольно новый для этого так сделать это просто, если вы можете и плохо стараться не задавать слишком много вопросов :)

ответ

1

mapView:viewForAnnotation: является методом делегата, поэтому вам необходимо установить свойство делегата MAPview для вашего объекта (или выполните соединение с помощью Interface Builder). Скорее всего, что вам нужно:

mapView.delegate = self; 
+0

блестящий ..... я знал, что это было что-то глупое .... –