Пользовательский callOut для булавки в mkMapview iphone!.... Соответствие пропущенных данных для вызова по умолчанию и пользовательского вызова - PullRequest
0 голосов
/ 16 июля 2011

pinView Callout

Я пытаюсь использовать пользовательский вынос для булавки, сброшенной в mapView. Я могу это сделать, скрыв выноску по умолчанию для pinView и показывая там мой пользовательский вызов. () .. все работает нормально ... Но единственная проблема заключается в том, что я не могу назначить правильную информацию для вызова ... Я показал вызов по умолчанию, в котором информация отличается от моего пользовательского вызова. Я прикрепил скрин-шот .....

Вот мой код

-(void)mapViewImplementaion
{

    [mapview setMapType:MKMapTypeStandard];
    mapview.showsUserLocation=YES;


    for (int i =0;i<[allResultsArr count];i++)
    {
        List_Map_details *object=[allResultsArr objectAtIndex:i];

        CLLocationCoordinate2D coordinat = {[object.lati floatValue], [object.longi floatValue]};

        [mapview setRegion:MKCoordinateRegionMake(coordinat, 
                                                      MKCoordinateSpanMake(0.027f, 0.027f))];



DisplayMapPark *ann = [[DisplayMapPark alloc] init]; 

        ann.title =[NSString stringWithFormat:@"%@",object.forRetailerName];
        ann.subtitle=[NSString stringWithFormat:@"%@ %@ %@",object.forAddress,object.forZipCode,object.forCityName];
        ann.latitude=[object.lati floatValue];
        ann.longitude=[object.longi floatValue];
        ann.coordinate = coordinat; 
        [mapview addAnnotation:ann];
        [ann release];



}




CalloutMapAnnotationView *calloutMapAnnotationView;

int m=1;


-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation {

    MKAnnotationView *pinView = nil; 



// here i wrote some code for my custom callout to generate(not shown)


if(annotation != mapview.userLocation) 
    {

        //int i=0;
        static NSString *defaultPinID = @"com.invasivecode.pin";
        pinView = (MKAnnotationView *)[mapview dequeueReusableAnnotationViewWithIdentifier:defaultPinID];

if ( pinView == nil ) 
            pinView = [[[MKAnnotationView alloc]
                                          initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];


        NSString *imagName = [NSString stringWithFormat:@"%d.png", m];
        UIImage *image = [UIImage imageNamed:imagName];
        [pinView setImage:image];

        pinView.canShowCallout = NO;
        // To show this in scrren Shot i set it to Yes;


        [pinView setAnnotation:annotation];

        pinView.tag=m;

        UIButton *rightButton=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinView.rightCalloutAccessoryView=rightButton;
        //pinView.rightCalloutAccessoryView.frame=CGRectMake(0, 0, 60, 60);

        m++;
    } 

    else 
    {
        [mapview.userLocation setTitle:@"Ik ben hier"];


    }

    pinView.annotation = annotation;
    [rightButton release];
    return pinView;

}

Привет, если кто-то из вас об этом .. пожалуйста, помогите !!!!!

1 Ответ

0 голосов
/ 19 июля 2011

Я решил эту проблему.Это была ошибка мной.Я просто не назначил теги для выводов должным образом ... и когда пользователь выбирает вывод, я читал информацию о каком-либо другом выводе .... Спасибо всем

...