自定义注释视图的图像不会出现在MKMapView中的设备构建中

时间:2010-07-01 22:43:13

标签: iphone annotations mkmapview

我正在使用iphone sdk并尝试在我的MKMapView上使用我的AnnotationView的自定义图像。我的方法适用于我的应用程序中的另一个屏幕,但对于有问题的一个,我在模拟器中看到图像,但在设备上看不到。我基本上创建了这样的自定义视图:

@implementation CustomAnnotationView

- (id) initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
{
    if (self = [ super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier ])
    {
        self.opaque = NO;
        self.backgroundColor = [UIColor clearColor];

        self.image = [UIImage imageNamed:@"MapIcon.png"];

    }
    return self;
}

@end

然后在getViewForAnnotation方法中我这样做:

    // attempt to reuse
    CustomAnnotationView* annotationView = (Custom AnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@""];

    // if reuse failed, create a new one
    if (annotationView == nil)
    {
        annotationView = [[Custom AnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@""];
    }

    return annotationView;

它可以在模拟器中运行,但从不在设备中运行。如果我停止使用自定义视图,则将红色引脚放在两者中(即它可以工作)。有没有人看到这样的差异?

1 个答案:

答案 0 :(得分:1)

哇。我发现问题是MapIcon.png不存在。这解释了为什么它不能在设备上运行,但它没有解释我是如何设法在模拟器中看到图标的。也许以某种扭曲的方式,它找到了项目中的MapIconLocale.png文件。或者可能在项目中有一些跟踪资产,因为我曾经在几周前使用MapIcon.png并将其删除(某种方式是副本)?

无论哪种方式,正确命名的图像显然都会修复它。