我正在iphone中开发一个处理地图的应用程序。我有很多注释。对于每个注释,我需要在标注(左侧附件视图)中加载不同的图像。任何人都可以告诉我如何做到这一点。用户在需要时动态添加注释,并从库中选择图像以将其添加到特定注释标注。我可以将图像添加到标注中。但不能区分不同的注释
答案 0 :(得分:0)
在地图的leftCalloutAccessoryView
方法中设置viewForAnnotation:
。 leftCallout是一个UIView,所以你可以放任何东西。一些示例代码可能如下所示:
MKAnnotationView *av = [[[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:@"ReuseMe"] autorelease];
[av setCanShowCallout:YES];
UIImageView *sfIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SFIcon.png"]];
av.leftCalloutAccessoryView = sfIconView;
[sfIconView release];
查看Apple的MapCallouts演示代码。它做你想要的。
基于注释的更新:更改刚刚放入initWithImage中的新图像的图像。你可以让这行像是
UIImageView * sfIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[myArrayOfImages objectAtIndex:myIndexVariable]];
你甚至可以重构UIImageView
一直到[sfIconView
的行,并以这种方式传递图像。每个注释都会调用viewForAnnotation:
的代码一次(就像UITableView中的单元格一样)。