2010-07-01 68 views
1

我正在使用iphone SDK,並嘗試在我的MKMapView上使用自定義圖像作爲我的AnnotationView。我的方法適用於我的應用中的另一個屏幕,但對於有問題的屏幕,我在模擬器中看到圖像,但在設備上看不到圖像。我基本上創建這樣的自定義視圖:自定義註釋視圖的圖像不會出現在MKMapView的設備上生成

@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

哇。我發現問題在於MapIcon.png不存在。這就解釋了爲什麼它不能在設備上工作,但它不能解釋我是如何在模擬器中看到圖標的。也許以某種扭曲的方式找到了項目中的MapIconLocale.png文件。或者項目中可能存在一些跟蹤資產,因爲幾星期前我曾經有一個MapIcon.png並將其刪除(以某種方式複製)?

無論哪種方式,正確命名的圖像明顯固定它。

+0

我有時會發現以前版本的舊資源還沒有被刪除 - 我總是從模擬器中卸載應用程序,並從頭開始重新安裝,當我得到這些類型的錯誤:) – deanWombourne 2010-07-01 23:25:01

相關問題