74课:给地图增加图钉标记和描述信息

课程笔记文集地址:Udemy课程:The Complete iOS 9 Developer Course - Build 18 Apps

一、创建并添加图钉

// 创建一个图钉实例
var annotation = MKPointAnnotation()
//图钉的坐标信息        
annotation.coordinate = location
//图钉的标题        
annotation.title = "某某某某某某"
//图钉的副标题        
annotation.subtitle = "有一天我要到这个地方去"
//把图钉添加到地图上       
map.addAnnotation(annotation)

就这么简单,一个图钉就添加到地图上啦~

二、给地图添加长按手势

长按地图的某个地方,然后会在这个点创建一个图钉。要实现这个需求,首先要给地图添加一个长按手势:

//创建长按手势实例,这里长按后的动作都在方法 `action:` 里,冒号表示方法有参数
var longPressGesture = UILongPressGestureRecognizer(target: self, action: "action:")
//定义多长时间就可以算是长按了        
longPressGesture.minimumPressDuration = 2
//把这个长按手势添加到地图上        
map.addGestureRecognizer(longPressGesture)

接下来实现长按后要执行的方法:

func action(gestureRecognizer: UIGestureRecognizer) {
    //可以在这里实现长按后想要实现的一些事情   
}

三、长按地图上的某个点添加一个图钉

func action(gestureRecognizer: UIGestureRecognizer) {
        //记录用户长按所在的点的位置
        var touchPoint = gestureRecognizer.locationInView(self.map)
        //将手指所在的点的位置转换成地图上的2D坐标数值
        var newCoordinate: CLLocationCoordinate2D = map.convertPoint(touchPoint, toCoordinateFromView: self.map)
        //这之后的代码都是在 一、创建并添加图钉 里说过的代码
        var annotation = MKPointAnnotation()
        
        annotation.coordinate = newCoordinate
        
        annotation.title = "New Place"
        
        annotation.subtitle = "One day I'll go here..."
        
        map.addAnnotation(annotation)        
}

运行程序,在地图上长按某个点,这个点就会出现一个图钉。不过图钉的信息不能编辑,都是默认的,如何才能让用户自定义某个图钉的 title 和 subtitle 呢?在之后的课程里会讲到的~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 感恩老师们的教授,让我可以享受冥想的宁静与快乐 感恩环卫工人每天来清扫垃圾,让环境得以干净美好 感恩老师做瑜伽直播...
    骞卉阅读 1,436评论 0 1
  • 树之殇 像游魂一样在人间飘荡 那天,我路过一个陌生的村庄 一棵树吸引了我好奇的目光 遗世独立,坚强挺拔的背后 隐藏...
    拙琥斋主人阅读 2,444评论 0 1
  • 阿年说我爱你,于是他们就在床上,合二为一了。 希宝说你不是说爱我么,于是他们就从此,一分为二了。 很多恋爱都是带着...
    不想被认出来的小透明阅读 5,721评论 0 5
  • 行车昆明,望雨有感 ——2011.8 青峰携雨夜袭来,珠穿四海五湖天。 落花随水无声去,孤自零落客乡间。
    雨晨I阅读 845评论 0 0