无法识别滑动手势
Posted
技术标签:
【中文标题】无法识别滑动手势【英文标题】:Swipe gesture not being recognised 【发布时间】:2018-11-29 15:33:39 【问题描述】:这是我第一次使用 UI 手势识别器。我正在尝试将其实现到SceneKit
,以控制相机(自定义控件没有更好的方法吗?)。
以下是我在视图控制器中的一瞥:
var gameView: SCNView!
/* ... */
override func viewDidLoad()
super.viewDidLoad()
// Setup game
/* ... */
// Gestures
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(swipeRightGesture))
swipeRight.direction = .right
gameView.addGestureRecognizer(swipeRight)
let pan = UIPanGestureRecognizer(target: self, action: #selector(panGesture))
gameView.addGestureRecognizer(pan)
@objc func swipeRightGesture()
print("SWIPE!")
@objc func panGesture()
print("PAN!")
我可以看到我的Pan
手势运行良好。但是,我的Swipe
手势似乎根本不起作用。删除 Pan
手势并没有没有做任何事情,所以手势争夺优先级没有问题。
为什么无法识别我的手势?我是否忘记了一些重要的事情(例如代表)?
【问题讨论】:
移除平移手势,直到找出滑动手势问题。愚蠢的问题,但你真的朝着正确的方向滑动了吗? @rmaddy 我正在朝着正确的方向滑动! ???我有问题中的平底锅只是为了表明它有效,但滑动没有...... 【参考方案1】:我刚刚意识到,当我设置视图时,我将相机控件设置为:
gameView.allowsCameraControl = true // Camera control
什么时候应该是:
gameView.allowsCameraControl = false // Camera control
我认为这是因为相机覆盖了视图的手势,而我完全忘记了这一点!现在按预期运行良好,并希望它对将来也犯同样小错误的人有所帮助。
【讨论】:
以上是关于无法识别滑动手势的主要内容,如果未能解决你的问题,请参考以下文章
仅在滚动内容到达边缘时识别 UIScrollView 中的滑动手势
添加手势识别器以允许在 Swift 中的 MapView 上水平滑动