Ios 拖动时,快速添加注释操作在地图上重复
我现在正在学习如何使用swift 2.0在地图上添加图钉或注释。我做了一些研究,实现了当用户长按某个位置时添加注释的目标。然而,我的代码有一个bug,当我长按一个点,添加一个pin时,如果我不松开手指并将其拖动到屏幕上,添加操作将重复。如图所示 这是我的密码:Ios 拖动时,快速添加注释操作在地图上重复,ios,swift,Ios,Swift,我现在正在学习如何使用swift 2.0在地图上添加图钉或注释。我做了一些研究,实现了当用户长按某个位置时添加注释的目标。然而,我的代码有一个bug,当我长按一个点,添加一个pin时,如果我不松开手指并将其拖动到屏幕上,添加操作将重复。如图所示 这是我的密码: override func viewDidLoad() { super.viewDidLoad() let longPressingGesture = UILongPressGestureRecognizer(target: self
override func viewDidLoad() {
super.viewDidLoad()
let longPressingGesture = UILongPressGestureRecognizer(target: self, action: "addPinsOnMaps:")
longPressingGesture.minimumPressDuration = 1.2
mapView.addGestureRecognizer(longPressingGesture)
}
func addPinsOnMaps(gesturePressing: UIGestureRecognizer){
let touchPoint = gesturePressing.locationInView(self.mapView)
mapView.convertPoint(touchPoint, toCoordinateFromView: self.mapView)
let annotation = MKPointAnnotation()
annotation.title = "This Place"
annotation.subtitle = "Gonna stay here for a while"
annotation.coordinate = coordinates
mapView.addAnnotation(annotation)
}
如有任何建议或提示,将不胜感激!谢谢 您需要添加一个
UIgestureRecognitizerState
来检查手势,在您的动作方法之前添加此代码
func action(gestureRecognizer: UIGestureRecognizer) {
if gestureRecognizer.state != UIGestureRecognizerState.Began {
return
}
尝试将LongPressing手势。minimumPressDuration=1.2设置为0@FrancescStudio,谢谢你的回答,但那不行。我想我没说清楚吧?就我而言,minimumPressDuration属性用于识别手势的最短时间。但我的问题是,如果我不松开手指,与手势相关的功能不会结束,这将导致注释被一次又一次地创建。我希望用户在一次长按中只能创建一个注释。我运行了一个示例代码,遇到了相同的问题,您只需添加
uigesturecognizerstate
函数即可查看我发布的答案。