以下是我的 MapKitDisplayViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
[mapView setMapType:MKMapTypeStandard];
[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 22.569722 ;
region.center.longitude = 88.369722;
[mapView setRegion:region animated:YES];
[mapView setDelegate:self];
DisplayMap *ann = [[DisplayMap alloc] init];
ann.title = [person name];
ann.subtitle = [person address];
ann.person = person;
ann.coordinate = region.center;
[mapView addAnnotation:ann];
}
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
(id <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = nil;
if(annotation != mapView.userLocation)
{
static NSString *defaultPinID = @"com.invasivecode.pin";
pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinView == nil ) pinView = [[[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
UIImageView *iconView = [[UIImageView alloc] initWithImage: [UIImage imageWithString:@?????????????????];
annotationView.leftCalloutAccessoryView = iconView;
pinView.pinColor = MKPinAnnotationColorRed;
pinView.canShowCallout = YES;
pinView.animatesDrop = YES;
}
return pinView;
}
你会看到它所说的行????????
我需要在那里显示图像。
当用户点击针点时,会出现弹出窗口。标题,副标题和图像被假设显示在弹出窗口中。我相信以下行应显示该弹出窗口的图像。但我无法将Person对象(或包含person对象的pipoint)图像URL传递给此方法。你能帮我在这里显示所选的图片网址吗?
答案 0 :(得分:0)
啊,我知道了。我有一个类似的问题,这可能是一个棘手的问题。我正在修改我的注释代码,所以你可以看到它,因为它不起作用,但我需要存储一些你可以稍后检索的东西。它不会失败。我需要知道如何传递person对象 用户选择viewForAnnotation方法
我做了一个对象,MKAnnotation。
@interface FotoMapLocation : NSObject <MKAnnotation> {
因此,当我制作注释时,我创建了一个FotoMapLocation对象。
FotoMapLocation *annotation = [[FotoMapLocation alloc] initWithTitle:title
subtitle:subtitle
foto:aFoto
thumbnailImage:aFoto.thumbnailImage
];
[mapView addAnnotation:annotation];
现在,您可以在此处存储任何内容。所以将Person对象存储在子类中。
我知道这只是那里的一半,而且非常漫无边际。但是我正好在翻录代码的过程中,然后又出现了另一个火,所以它目前处于中间状态。但我希望在几天后回归它。我会回来查看,如果你没有,我会更新这个答案。
答案 1 :(得分:0)
这就是我在viewForAnnotation
方法
DisplayMap *dm= (DisplayMap *)annotation;
NSString *url = [dm.person urlOfPerson];