我有一个UISwipeGestureRecognizer
相应地设置动画,以便在手势时突出显示UIButton
,当UIButton
调用TouchUpInside / TouchUpOutside时,它会完成动画。这适用于我UIButton
上的向下滑动手势,但出于某种原因,当我尝试向上滑动(在另一个UISwipeGestureRecognizer
上)时,它不会运行该功能。 (是的,它是相同的UIButton
)这是我在viewDidLoad中所做的:
[myButton addTarget:self action:@selector(myAction) forControlEvents:(UIControlEventTouchUpInside|UIControlEventTouchUpOutside)];
对于我刚才使用的动作:
-(void) myAction{
//Do whatever I want to do, in this case finish the animation.
}
我为滑动手势运行的代码都不会影响UIButton
,所以我想我想知道是否有人知道我在这里做错了什么?
编辑:似乎问题是,当我向上拖得太快时,按钮会失去“焦点”(突出显示),因此TouchUpInside / TouchUpOutside没有被调用,但当我以任何速度向下拖动时{ {1}}始终保持突出显示,无论如何要解决这个问题? (见GIF)
答案 0 :(得分:2)
从下面的讨论中我了解到你已经在故事板中声明了UIGestureRecognizers,但也不必在代码中添加它们。尝试取消它们,查看UIButton触摸是否按预期工作,然后决定策略 - 创建并在故事板中全部分配它们或全部用代码分配。
答案 1 :(得分:1)
我修好了! (最后,非常愚蠢的我) TouchUpInside / TouchUpOutside未被调用的原因是因为我忘了添加
myGesture.cancelsTouchesInView=NO;
对于我的所有手势识别器,无论如何都要感谢。