我运行以下代码,并且没有错误。长按正常,双击不起作用。添加双击手势之前,我已禁用缩放。
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
manager = CLLocationManager()
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
routeMapView.zoomEnabled = false
routeMapView.showsPointsOfInterest = true
let doubleTapGesture = UITapGestureRecognizer(target: self, action: "routeMapDoubleTapSelector:")
doubleTapGesture.numberOfTapsRequired = 2
routeMapView.addGestureRecognizer(doubleTapGesture)
let ulpgr = UILongPressGestureRecognizer(target: self, action:"routeMapLongPressSelector:")
ulpgr.minimumPressDuration = 2.0
routeMapView.addGestureRecognizer(ulpgr)
}
有什么帮助吗?
最佳答案
我尝试了您的代码,它似乎运行良好。打印“双击”。这是测试代码。
import UIKit
import MapKit
class ViewController: UIViewController, CLLocationManagerDelegate {
let manager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
let routeMapView = MKMapView()
self.view = routeMapView
routeMapView.zoomEnabled = false
routeMapView.showsPointsOfInterest = true
let doubleTapGesture = UITapGestureRecognizer(target: self, action: "routeMapDoubleTapSelector:")
doubleTapGesture.numberOfTapsRequired = 2
routeMapView.addGestureRecognizer(doubleTapGesture)
let ulpgr = UILongPressGestureRecognizer(target: self, action:"routeMapLongPressSelector:")
ulpgr.minimumPressDuration = 2.0
routeMapView.addGestureRecognizer(ulpgr)
}
func routeMapDoubleTapSelector(sender: AnyObject) {
NSLog("double taps")
}
func routeMapLongPressSelector(sender: AnyObject) {
NSLog("long press")
}
}