iPhone不同的图像用于不同的标注

Posted

技术标签:

【中文标题】iPhone不同的图像用于不同的标注【英文标题】:iPhone different images for different callouts 【发布时间】:2011-03-14 12:09:47 【问题描述】:

我正在 iphone 中开发一个处理地图的应用程序。我有很多注释。对于这些注释中的每一个,我需要在标注(左附件视图)中加载不同的图像。谁能告诉我如何做到这一点。用户在需要时动态添加注释,并从图库中选择图像以将其添加到特定的注释标注。我可以将图像添加到标注。但无法区分不同的注释

【问题讨论】:

【参考方案1】:

在 Map 的 viewForAnnotation: 方法中设置 leftCalloutAccessoryView。 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 中的单元格一样)。

【讨论】:

感谢您快速回答。我已经完成了该教程。我可以将图像添加到标注。但是我想为它们中的每一个添加不同的图像用户从图库中为特定的注释选择一个图像。然后该图像仅针对该注释显示。希望它清楚。请帮忙。 用户还可以在地图上添加新的注释。因此新的图像。 我无法达到结果。我已经包含了它们。我可以知道如何使用您在您的代码中提到的“重用”关键字。 @Droidme 在原始问题中发布您的 viewForAnnotation: 代码。另外,添加保存图像的变量,我会帮你修改代码。

以上是关于iPhone不同的图像用于不同的标注的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 上为不同的图像尺寸使用 Xcode 自动布局

为 iPhone 和 iPad 加载不同的图像

支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像

与 iPhone 5s 或 5se 相比,iPhone 5 上的 Swift 色彩空间不同

在 Xcode 中将图像尺寸调整为不同的 iPhone 屏幕尺寸

iOS - 需要为不同的 iPhone 调整按钮和图像的大小