我的注释不显示PIN中的小标题

在显示PINS的实现类中,我已经预留了两个variables(标题和子标题),在这个例子中,当我点击PIN时,只显示单词USA (标题)。

 CLLocationCoordinate2D location2D = (CLLocationCoordinate2D){ .latitude = latitudeOfUserLocation, .longitude = longitudeOfUserLocation }; ManageAnnotations *annotation=[[ManageAnnotations alloc]initWithTitle:@"USA" adresseDuTheme:@"Colorado" coordinate:location2D];//only USA is displayed annotation.pinColor = MKPinAnnotationColorRed; //or red or whatever [self->mapView addAnnotation:annotation]; MKCoordinateSpan span={.latitudeDelta=1,.longitudeDelta=0.5}; MKCoordinateRegion region={location2D,span}; [mapView setRegion:region]; 

虽然在ManageAnnotations类中,我已经为标题和副标题保留了两个variables。

 @interface ManageAnnotations : NSObject<MKAnnotation>{ NSString *_libelle; NSString *_adresse; CLLocationCoordinate2D _coordinate; } // @property(nonatomic,assign)MKPinAnnotationColor pinColor; @property(copy)NSString *libelle; @property(copy)NSString *adresse; @property(nonatomic,readonly)CLLocationCoordinate2D coordinate; -(id)initWithTitle:(NSString*)libelle adresseDuTheme:(NSString*)adresse coordinate:(CLLocationCoordinate2D)coordinate; @end #import "ManageAnnotations.h" @implementation ManageAnnotations @synthesize pinColor; @synthesize libelle=_libelle; @synthesize adresse=_adresse; @synthesize coordinate=_coordinate; -(id)initWithTitle:(NSString*)libelle adresseDuTheme:(NSString*)adresse coordinate:(CLLocationCoordinate2D)coordinate{ if((self=[super init])){ _libelle=[libelle copy]; _adresse=[adresse copy]; _coordinate=coordinate; } return self; } -(NSString*)title{ return _libelle; } -(NSString*)subTitle{ return _adresse; } @end 

MKAnnotation协议将subtitle属性定义为:

 @property (nonatomic, readonly, copy) NSString *subtitle 

注意subtitle全部小写,但是你的类有subTitle (大写T ),地图视图不会调用。

将方法声明更改为:

 -(NSString*)subtitle 

在方法声明和属性声明中将subTitle改为字幕,它将起作用。 :)开心编码,