У меня есть код, который я даю координаты, заголовок, подзаголовок, информацию о расположении файла изображения.Эта информация используется для создания аннотации для вывода ios mapkit.Заголовок и субтитры автоматически подключаются, и я могу получить другую информацию (расположение файла изображения) после того, как пин-код выбран.Однако я хочу отобразить миниатюру изображения в аннотации (всплывающее окно), но у меня возникают проблемы при настройке его в качестве переменной, чтобы получить его из моей информации, а не жестко кодировать его.Ниже приведен код, который я использую для создания моей карты / пинов.
- (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;
}