Вам не нужно удалять его и добавлять обратно. Просто измените пользовательский вид аннотации и наберите setNeedsDisplay
. Пример:
@interface AnnotationClusterView : MKAnnotationView {
@property (nonatomic, assign) int badgeNumber;
}
@implementation AnnotationClusterView
@synthesize badgeNumber;
// ...
- (void)drawRect:(CGRect)rect {
NSString *string = [NSString stringWithFormat:@"%d",self.badgeNumber];
[string drawInRect:stringRect withFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];
}
@end
Когда изменяется масштаб, получите ссылку на MKAnnotationView, установите другой номер badgeNumber и попросите перерисовать вызов [myView setNeedsDisplay];
. Вы можете сделать то же самое для изображений.