我在 viewDidLoad 方法中添加了一个 UILongPressGestureRecognizer:
var uilpgr = UILongPressGestureRecognizer(target: sMapView, action: "longPressDetected:")
uilpgr.minimumPressDuration = 1
sMapView.addGestureRecognizer(uilpgr)
我正在尝试在我的处理程序中禁用它。这是我唯一的手势识别器,现在我正在尝试:
var recognizerList = sMapView.gestureRecognizers
var recognizer = uilpgrList[0] as! UILongPressGestureRecognizer
recognizer.enabled = false
我收到错误:“无法使用‘Int’类型的索引为 [AnyObject] 的值添加下标?”
最佳答案
我没有考虑到 sMapView.gestureRecognizers 返回的数组是可选的这一事实。
还在初始化中发现了一个错误。
当前工作代码:
初始化: var uilpgr = UILongPressGestureRecognizer(目标: self, 操作: "longPressDetected:") uilpgr.minimumPressDuration = 1 sMapView.addGestureRecognizer(uilpgr)
禁用:
var recognizer = sMapView.gestureRecognizers![0] as! UILongPressGestureRecognizer
recognized.enabled = false
启用:
var recognizer = sMapView.gestureRecognizers![0] as! UILongPressGestureRecognizer
recognized.enabled = true
关于ios - 如何使用 MKMapView.gestureRecognizers 访问特定的 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32003880/