首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MKMapview上快速显示MKMapview

如何在MKMapview上快速显示MKMapview
EN

Stack Overflow用户
提问于 2015-04-18 08:23:27
回答 1查看 1.9K关注 0票数 3

我试图在MKMapView中的一个引脚上实现一个自定义注释视图。另一个用户给了我这个函数来生成定制的MKPinAnnotationView。https://stackoverflow.com/users/3845091/zisoft

代码语言:javascript
复制
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
if annotation is PinAnnotation {
    let pinAnnotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "myPin")

    pinAnnotationView.pinColor = .Purple
    pinAnnotationView.draggable = true
    pinAnnotationView.canShowCallout = true
    pinAnnotationView.animatesDrop = true

    let deleteButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
    deleteButton.frame.size.width = 44
    deleteButton.frame.size.height = 44
    deleteButton.backgroundColor = UIColor.redColor()
    deleteButton.setImage(UIImage(named: "trash"), forState: .Normal)

    pinAnnotationView.leftCalloutAccessoryView = deleteButton

    return pinAnnotationView
}

return nil

}

我会传递函数,我想要它的映射的参数,以及我想要定制的注释。即mapView(myMap, viewForAnnotation: point)

这一切都很好,但是,当我尝试将MKPinAnnotationView添加到地图中时,使用

map.addAnnotation(mapView(myMap, viewForAnnotation: point))

指出数据类型无效的错误。有谁知道如何用定制的视图在地图上渲染引脚吗?

一个简单的解决方案总是最好的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-18 11:51:49

在您的问题中,您提到了viewForAnnotation方法:

我会传递函数,我想要它的映射的参数,以及我想要定制的注释。即mapView(myMap,viewForAnnotation: point)

不,这是错误的。

You不会传递函数参数等。

viewForAnnotation方法是您实现的委托方法,但不是由您直接调用的

地图视图 (MKMapView)将调用它并传递函数参数等。

viewForAnnotation委托方法可以为给定的注释模型对象提供自定义的视图

要确保map视图调用您的委托方法,您必须:

  • 确保地图视图的delegate插座连接到故事板中的视图控制器,或者
  • 在代码中,通常在viewDidLoad中,执行mapView.delegate = self

当您调用addAnnotation时,传递给它注释模型对象(例如。MKPointAnnotation或实现MKAnnotation协议的任何东西)。

所以这句话:

代码语言:javascript
复制
map.addAnnotation(mapView(myMap, viewForAnnotation: point))

应该是这样的:

代码语言:javascript
复制
map.addAnnotation(point)

MKPinAnnotationView对象(以及子类MKAnnotationView)是一些注释模型对象的视图 --它们不是相同的东西。

这些问题和主题已经在iOS和MapKit文档、SO和其他地方可用的教程中多次讨论过。

以下是几个相关的问题,您可能会发现这些问题很有用:

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

https://stackoverflow.com/questions/29714784

复制
相关文章

相似问题

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