Скрыть подзаголовок аннотации или изменить цвет

В моем приложении я добавляю подзаголовок к аннотационной булавке, но не хочу показывать булавку. Я просто использую его для целей кодирования. Как я могу скрыть или изменить цвет субтитров?


person pallavi    schedule 04.02.2012    source источник


Ответы (2)


Если я правильно понял ваш вопрос, вы используете субтитры булавки для некоторой обработки и не хотите показывать их на булавке. Если вы используете выноску по умолчанию, то невозможно изменить цвет субтитров или скрыть их после назначения annotation.subtitle = @"some subtitle".

Я бы предложил добавить еще одну переменную в аннотацию и назначить подзаголовок этой переменной (annotation.newSubtitle = @"some subtitle") и ничего не назначать для атрибута подзаголовка. Вся обработка, которую вы хотите сделать, может быть выполнена с помощью annotation.newSubtitle.

Если вы не хотите добавлять новую переменную в аннотацию, вам придется реализовать пользовательскую выноску, что утомительно.

EDIT: вам будет полезно присвоить 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

А для назначения

[annotation setNewSubTitle: @"some text"];

для доступа

myString = annotation.newSubtitle
person chatur    schedule 04.02.2012
comment
я получаю предупреждение Семантическая проблема: метод '-newSubtitle' не найден (тип возврата по умолчанию равен 'id') в этой строке pinView.image=[UIImage imageNamed:[NSString stringWithFormat:@c%d.png,[[annotation newSubtitle] integerValue ]]]; - person pallavi; 09.02.2012
comment
@pallavi, возможно, вам нужно реализовать метод -(void)setNewSubTitle:(NSString *)SubTitle. Смотрите обновленный ответ. если у вас возникнут трудности, дайте мне знать. - person chatur; 09.02.2012
comment
это не работает для меня. невозможно получить доступ к newSubtitle в аннотации (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id ‹MKAnnotation›) - person pallavi; 10.02.2012
comment
newSubTitle (или любая другая назначенная переменная для MKAnnotation) не будет доступна (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id ‹MKAnnotation›)метод аннотации. Но есть несколько других способов, с помощью которых вы можете получить к нему доступ и использовать его. например, вы можете назначить newSubTitle во время создания аннотации. annotation.newSubTitle = @новый подраздел; - person chatur; 14.02.2012

Если вы хотите получить доступ к любой строке для каждой конкретной аннотации, вы можете использовать NSMutableDictionary и добавить свою аннотацию в качестве ключа. и позже вы могли получить доступ к этому в

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
person ajay_nasa    schedule 23.07.2015