2010-12-08 6 views
0

Ich habe Code, den ich gibt Koordinaten, Titel, Untertitel, Bilddatei Standortinformationen. Diese Informationen werden verwendet, um die Annotation für einen ios mapkit-Pin zu generieren. Der Titel und der Untertitel werden automatisch eingesteckt und ich kann die anderen Informationen (Speicherort der Bilddatei) nach Auswahl des Pins abrufen. Ich schaue, um ein thumbnail des Bildes in der Annotation (Stiftpopup) jedoch anzuzeigen, aber ich habe Probleme, es als eine Variable einzustellen, um es von meinen Informationen zu erhalten, im Gegensatz zur harten Kodierung es. Unten ist der Code, den ich verwende, um meine Karte/Pins zu generieren.Get Variable und steck es in MKAnnotationView

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { 
    // Boilerplate pin annotation code 
UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; 

NSString *imageLoc; 

    MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.map dequeueReusableAnnotationViewWithIdentifier: @"restMap"]; 
    if (pin == nil) { 
     pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"restMap"] autorelease]; 

    } else { 
     pin.annotation = annotation; 
} 

    pin.pinColor = MKPinAnnotationColorRed; 
    pin.canShowCallout = YES; 
    pin.animatesDrop = YES; 

NSString *imageLoc= ???????????? 

UIImageView *leftIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageLoc]]; 
    pin.leftCalloutAccessoryView = leftIconView; 

    [detailButton addTarget:self action:@selector(showDetailView:) forControlEvents:UIControlEventTouchUpInside]; 
    pin.rightCalloutAccessoryView = detailButton; 
    return pin; 
} 

@interface MapPin : NSObject <MKAnnotation> { 

    CLLocationCoordinate2D coordinate; 
    NSString *subtitle; 
    NSString *title; 
NSString *indexnumber; 
NSString *imageFile; 
} 

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 
@property (nonatomic, readonly) NSString *title; 
@property (nonatomic, readonly) NSString *subtitle; 
@property (nonatomic, readonly) NSString *indexnumber; 
@property (nonatomic, readonly) NSString *imageFile; 

-(id)initWithCoordinates:(CLLocationCoordinate2D)location 
       placeName: placeName 
      description:description 
    indexnum:indexnum 
    imageFileLoc:imageFileLoc; 

@end 


#import "MapPin.h" 

@implementation MapPin 

@synthesize coordinate; 
@synthesize title; 
@synthesize subtitle; 
@synthesize indexnumber; 
@synthesize imageFile; 

-(id)initWithCoordinates:(CLLocationCoordinate2D)location 
       placeName: placeName 
      description:description 
    indexnum:indexnum 
    imageFileLoc:imageFileLoc{ 

    self = [super init]; 
    if (self != nil) { 
    imageFile=imageFileLoc; 
    [imageFile retain]; 
    indexnumber=indexnum; 
    [indexnumber retain]; 
     coordinate = location; 
     title = placeName; 
     [title retain]; 
     subtitle = description; 
     [subtitle retain]; 
    } 
    return self;  
} 
+0

Bitte überprüfen Sie Ihre Formatierung. –

Antwort

0

Was ist über das Annotationsobjekt verfügbar? Hast du folgendes versucht?

NSString *imageLoc = [annotation respondsToSelector:@selector(imageFile)] ? [annotation imageFile] : @"some_default_value";