取决于MKMapView的缩放级别我需要重绘我的自定义MKAnnotationView。到目前为止,据我所知,我必须在地图控制器的下一个方法
中这样做- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
在MKMapView中删除然后添加注释会强制闪烁AnnotationView。 我怎样才能以正确的方式做到这一点?
答案 0 :(得分:3)
您无需将其删除并重新添加。只需在自定义注释视图上进行更改,然后调用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];
。您可以对图像执行相同的操作。