视图创建:
var myView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 40))
myView.addSubview(myLabel) // some label
myView.backgroundColor = UIColor.whiteColor()
self.view.addSubview(myView)
var mySwipeGesture = UISwipeGestureRecognizer(target: self, action: "userDidSwipe:")
myView.userInteractionEnabled = true
myView.addGestureRecognizer(mySwipeGesture)
被叫方法:
func userDidSwipe(sender:UISwipeGestureRecognizer) {
if sender.direction == UISwipeGestureRecognizerDirection.Right {
switchToMain()
}
}
这不起作用,方法userDidSwipe
未被调用。
奇怪的是,相同的手势识别器mySwipeGesture
被添加到另一个UIView (包含许多子视图)并且完美有效!
为什么它不适用于myView
?我该怎么检查?
答案 0 :(得分:1)
通常这有效。可能存在以下问题,
1)检查myView的userInteractionEnabled属性。
2)检查myView的框架(也许你正在不同的框架上滑动)。
3)myView上可能有另一个阻止手势的视图。
答案 1 :(得分:0)
您要向mySwipeGesture
myView
替换你的行
myView.addGestureRecognizer(swipeGesture)
与
myView.addGestureRecognizer(mySwipeGesture)
答案 2 :(得分:0)
在你的代码中添加这一行你没有告诉滑动手势的方向
document.querySelector("textarea").addEventListener('keydown', handler);
function handler(evt) {
console.log({
keyCode: evt.keyCode,
code: evt.code,
key: evt.key
});
}