Получение пути к изображению в списке - PullRequest
0 голосов
/ 08 сентября 2011

Я пытаюсь получить путь к изображению (например, annotation1.jpg), сохраненный в листе, для вставки пользовательского выноски, в зависимости от того, какой это POI. Сейчас я получаю только одно статическое изображение.

Как я могу реализовать это в моем коде?

   - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
        if (annotation == self.calloutAnnotation) {
            CalloutMapAnnotationView *calloutMapAnnotationView = (CalloutMapAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"CalloutAnnotation"];
            if (!calloutMapAnnotationView) {
                calloutMapAnnotationView = [[[CalloutMapAnnotationView alloc] initWithAnnotation:annotation 
                                                                                 reuseIdentifier:@"CalloutAnnotation"] autorelease];
                calloutMapAnnotationView.contentHeight = 78.0f;
                UIImage *asynchronyLogo = [UIImage imageNamed:@"something.png"];
                UIImageView *asynchronyLogoView = [[[UIImageView alloc] initWithImage:asynchronyLogo] autorelease];
                asynchronyLogoView.frame = CGRectMake(5, 2, asynchronyLogoView.frame.size.width, asynchronyLogoView.frame.size.height);
                [calloutMapAnnotationView.contentView addSubview:asynchronyLogoView];
            }
            calloutMapAnnotationView.parentAnnotationView = self.selectedAnnotationView;
            calloutMapAnnotationView.mapView = self.mapView;
            return calloutMapAnnotationView;
        } else if ([annotation isKindOfClass:[MyHomeAnnotation class]]) {
            MKPinAnnotationView *annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation 
                                                                                   reuseIdentifier:@"CustomAnnotation"] autorelease];
            annotationView.canShowCallout = NO;
            annotationView.pinColor = MKPinAnnotationColorGreen;
            return annotationView;
        }else if ([annotation isKindOfClass:[MyMapAnnotation class]]) {
            MKPinAnnotationView *annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation 
                                                                                   reuseIdentifier:@"NormalAnnotation"] autorelease];
            annotationView.canShowCallout = NO;
            annotationView.pinColor = MKPinAnnotationColorRed;
            return annotationView;
        }


        return nil;
    }

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 08 сентября 2011

Вы можете загрузить PLIST в NSDictionary:

NSDictionary *myDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:pathAndFileName];

Когда у вас есть словарь, вы можете извлечь нужный ключ с помощью:

NSString *imageFileName = [myDictionary objectForKey:@"imageFileName"];

Затем вы можете создатьизображение так же, как у вас (пока оно в комплекте) с:

UIImage *image = [UIImage imageNamed:imageFileName];
...