2012-02-04 48 views

回答

1

如果我正確理解你的問題,你正在使用pin字幕進行一些處理,並且不想在pin上顯示它。如果您使用默認標註,則無法更改字幕的顏色,或者在分配annotation.subtitle = @"some subtitle"後將其隱藏。

我會建議,將另一個變量添加到註釋並將字幕分配給該變量(annotation.newSubtitle = @"some subtitle"),並且不要爲字幕屬性分配任何內容。您想要做的所有處理都可以使用annotation.newSubtitle完成。

如果您不願意添加新的變量註釋,那麼你將不得不實現自定義標註,這是乏味的。

編輯: 你會發現以下有用的NSString分配給你的註釋。

@interface MyAnnotation : NSObject<MKAnnotation> { 
NSString *newSubTitle; 
} 
@property(retain,readwrite, nonatomic) NSString *newSubTitle ; 
@end 

在實現部分

@implementation MyAnnotation 
@synthesize mSubTitle; 
-(void)setNewSubTitle:(NSString *)SubTitle{ 
    self.newSubTitle = SubTitle; 
} 
@end 

而且用於訪問

myString = annotation.newSubtitle 
+0

即時訪問此得到警告 語義問題:方法-newSubtitle'未找到(返回類型默認爲「身份證」) 在該行 pinView.image = [ UIImage imageNamed:[NSString stringWithFormat:@「c%d.png」,[[annotation newSubtitle] integerValue]]]; – pallavi 2012-02-09 11:16:40

+0

@ pallavi,可能你需要實現 - (void)setNewSubTitle:(NSString *)SubTitle方法。查看更新的答案。如果您有任何困難,請告訴我。 – chatur 2012-02-09 11:28:48

+0

it dosent爲我工作。無法訪問newSubtitle - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )註釋 – pallavi 2012-02-10 10:58:29

1

指派

[annotation setNewSubTitle: @"some text"]; 

如果你想訪問的每一個具體標註任何字符串,你可以使用NSMutabl eDictionary並將您的註釋添加爲關鍵字。後來,你可以在

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {