ios - 如何轻轻地从 map View 中删除注释?

标签 ios mkmapview

我正在向 map View 添加和删除注释。当我取下一个时,它突然消失,看起来有点令人吃惊,我宁愿它优雅地消失。

我尝试使用 UIView:animateWithDuration: 删除它,但它不是可动画的属性。

如果没有其他简单的解决方案,我想我可以让注释 View 淡化它的 alpha,然后从 map 上删除它的注释。然而,问题是注释 View 似乎没有对其 map View 的引用?添加一个开始变得有点困惑。 是否有一些简单快速的解决方案可以优雅地删除注释?

最佳答案

使用 animateWithDuration 应该可以正常工作。要淡化注释的删除,可以:

MKAnnotationView *view = [self.mapView viewForAnnotation:annotation];

if (view) {
    [UIView animateWithDuration:0.5 delay:0.0 options:0 animations:^{
        view.alpha = 0.0;
    } completion:^(BOOL finished) {
        [self.mapView removeAnnotation:annotation];
        view.alpha = 1.0;   // remember to set alpha back to 1.0 because annotation view can be reused later
    }];
} else {
    [self.mapView removeAnnotation:annotation];
}

关于ios - 如何轻轻地从 map View 中删除注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307576/

相关文章:

ios - 为什么我的 MKPointAnnotation 不可拖动,我该如何更改它?

iOS 需要帮助克服内存问题

iphone - 在缩放之后/期间更新 AnnotationView

ios - 在子上下文中保存会自动保存到父上下文

ios - SWIFT 中 IOS 应用程序的 FacebookSDK 集成链接器错误

ios - arc4random:限制生成的随机数的值

ios - 在 WKWebView 中抓取并调用电话号码

ios - MPMoviePlayerController 运行错误

ios - 如何存储当前的 MKCooperativeRegion 或缩放级别?

ios - 为双期赋值