首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重绘MKAnnotationView

重绘MKAnnotationView
EN

Stack Overflow用户
提问于 2011-04-08 04:16:44
回答 1查看 3K关注 0票数 2

我需要重画我的自定义MKAnnotationView,这取决于MKMapView的缩放级别。据我所知,我必须在map控制器的下一个方法中这样做。

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated

在这里删除并向MKMapView添加注释会强制闪烁AnnotationView。我怎样才能以正确的方式做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-22 04:09:43

您不需要删除它,然后再重新添加它。只需对自定义注释视图进行更改并调用setNeedsDisplay即可。示例:

代码语言:javascript
复制
@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];的重绘。您可以对图像执行相同的操作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5587087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档