MKMapView / MKOverlay - 允许用户定义叠加坐标

时间:2010-11-09 20:19:14

标签: objective-c ios4 mkmapview

我试图让用户为叠加层定义边框。这似乎应该是一件简单的事情;但我甚至无法知道如何知道用户何时触摸地图。我原以为UIMapViewDelegate会有方法来响应用户的交互,但似乎并没有。在Google地图应用中,当您按住某个位置时,它会丢弃一个引脚;我猜这将是让用户定义叠加层的第一步。

看起来UILongPressGestureRecognizer会提供我想要的东西;但不太明白如何将GestureRecognizer添加到MapView。我已经阅读了MKMapView和UIGestureRecognizer文档;我错过了什么?感谢。

1 个答案:

答案 0 :(得分:1)

任何UIView都支持使用-addGestureRecognizer:方法添加手势识别器。但这可能不是最好的方法:如果您想要复制地图行为,可以使用MKPinAnnotationViewdraggable属性设置为YES,然后更新您的拖动结束时(即地图视图调用其-mapView:annotationView:didChangeDragState:fromOldState:委托方法时)叠加边界以适合注释的位置。请注意,无论您使用何种注释类,都需要实现-setCoordinate:方法,如MKAnnotation协议中所定义,以便将引脚拖动工作。