重绘MKAnnotationView
取决于 MKMapView 的缩放级别,我需要重新绘制自定义 MKAnnotationView。到目前为止,据我了解,我必须在地图控制器的下一个方法中执行此操作
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
,删除然后向 MKMapView 添加注释,强制 AnnotationView 闪烁。 我怎样才能以正确的方式做到这一点?
Depends of zoom level of MKMapView I need to redraw my custom MKAnnotationView. As far, as I understood I must to do it in next method of map controller
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
Removing and then adding annotation to MKMapView here force blinking of AnnotationView.
How can I do this in a right way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要删除它然后将其添加回来。只需对自定义注释视图进行更改并调用 setNeedsDisplay 即可。示例:
当缩放发生变化时,获取对 MKAnnotationView 的引用,设置不同的徽章编号,并调用
[myView setNeedsDisplay];
请求重绘。您可以对图像执行相同的操作。You don't need to remove it and add it back. Just make a change on the custom annotation view and call
setNeedsDisplay
. Example:When zoom changes, get a reference to the MKAnnotationView, set a different badgeNumber, and ask for a redraw calling
[myView setNeedsDisplay];
. You can do the same for images.