Я создал MKAnnotation с именем PushPin, у которого есть заголовок и подзаголовок. Я хочу иметь возможность динамически изменять заголовок в более позднее время. Я близок, поэтому я бы предпочел не создавать совершенно новый AnnotationView, но если мне придется, я думаю, это тоже нормально. Моя проблема в том, что, как только я изменяю текст заголовка, размер окна не изменяется, и некоторый текст может быть обрезан в зависимости от того, насколько большим был заголовок изначально.
1) Есть ли событие, которое я могу инициировать, чтобы снова изменить размер всплывающего окна выноски?
2) Кроме того, я сначала проверяю, действительно ли у аннотации есть заголовок, прежде чем сбрасывать заголовок, но после проверки у меня возникли проблемы с его приведением, может ли кто-нибудь помочь мне с этим? Я все еще новичок в Objective-C, и это какое-то время меня бесило.
#import <Foundation/Foundation.h>
#import <MapKit/MKAnnotation.h>
@interface PushPin : NSObject <MKAnnotation> {
CLLocationCoordinate2D _coordinate;
NSString *_title;
NSString *_subtitle;
NSString *_ID;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *subtitle;
@property (nonatomic, retain) NSString *ID;
- (id) initWithCoordinateAndInformation:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle;
@end
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
NSLog(@"Annotation was TAPPED!");
if ([view.annotation isKindOfClass:[PushPin class]]) {
view.annotation.title = @"test";
// warning here, that this might not be implemented...
// but it is for this class type, how do I cast it to the correct type?
}
}