Следующий код, кажется, печатает значения дважды, даже если я удерживаю их в течение 2 секунд.Почему UILongPressGestureRecognizer возвращается дважды
Независимо от того, какую продолжительность я перехожу к нему, кажется, что она выполняется дважды, кто-нибудь знает, почему это может быть?
func action(gestureRecognizer:UIGestureRecognizer){
var touchPoint = gestureRecognizer.locationInView(self.myMap);
var newCo = myMap.convertPoint(touchPoint, toCoordinateFromView: self.myMap);
var annotation = MKPointAnnotation();
annotation.coordinate = newCo;
var loc = CLLocation(latitude: newCo.latitude, longitude: newCo.longitude);
CLGeocoder().reverseGeocodeLocation(loc, completionHandler: {(placemarks, error)->Void in
let pm:CLPlacemark = placemarks[0] as CLPlacemark;
var address = pm.locality + " ," + pm.postalCode + " ," + pm.administrativeArea + " ," + pm.country;
annotation.title = address;
self.myMap.addAnnotation(annotation);
println(address);
println("\(newCo.latitude)");
println("\(newCo.longitude)");
//places.append(["name:":address, "lat": "\(newCo.latitude)", "lon":"\(newCo.longitude)"]);
})
}
так я хотел бы, чтобы обернуть свой код в если (жест state.state == UIGestureRecognizerState.Began) {делать-вещи?} – Biscuit128
Да, либо на время начала или окончания, зависит от того, как вы хотите, чтобы пользователь взаимодействовал с ним. То есть, начните использовать, если вы хотите распечатать местоположение после того, как была нажата длительная длительность нажатия, или использовать конец, когда пользователь освобождается от печати. –