首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从视图中删除MKAnnotationView默认标注

从视图中删除MKAnnotationView默认标注
EN

Stack Overflow用户
提问于 2017-05-03 17:10:52
回答 1查看 1.2K关注 0票数 1

我试图通过阻止 MKMapKit在不阻塞注释的委托调用/交互(见下文)的情况下点击显示在MKMapView 上的标记时显示默认的注释标注。

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView didSelectAnnotation:(MKAnnotationView *)view {

    // Custom callout initialized & presented here
    . . .

}

我知道你可能会完全禁止呼叫显示

代码语言:javascript
复制
someAnnotationView.canShowCallout = NO;

或者(更多的是一种恶意的方法)而不是设置注释的任何显示参数:

代码语言:javascript
复制
// Commenting out string assignments below

// someAnnotation.title = @"Hey!";
// someAnnotation.subTitle = @"Aren't I an annoying callout :P ?";

正如其他线程中所建议的,在注释视图中添加一个子视图确实会将一个自定义视图(任意您喜欢的视图)添加到您选择的边框中。

问题,但是,添加一个子视图

  1. 不是没有阻止默认的标注泡出现吗?
  2. 如果禁用canShowCallout 或不设置标签,则注释交互将丢失。
  3. 如果您添加了一个子视图,它将在默认标注下面添加。

3注意到您可以延迟添加您的子视图+0.5秒,这将在标注之上添加您的自定义视图,但是这是一个糟糕的解决方法,因为您看到默认的标注早在您的视图之前就出现了。

有什么解决办法吗?

  1. 删除默认的标注,而不调用禁用委托方法,
  2. 或者编辑实际的标注视图(我猜这是一些CGPathUIBezierePath绘制视图)

任何帮助都将不胜感激。谢谢!

更新:

我使用委托mapView:viewForAnnotation来创建注释视图并将其添加到我的地图中。

EN

回答 1

Stack Overflow用户

发布于 2020-08-17 23:15:52

选中时,移除注释的标题和副标题:

代码语言:javascript
复制
    func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
        if let annotation = view.annotation {
            annotation.title = nil
            annotation.subtitle = nil
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43766219

复制
相关文章

相似问题

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