课程笔记文集地址: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 呢?在之后的课程里会讲到的~