0

我有一个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,但是当我以任何速度向下拖动时,UIButton保持突出显示整个时间,无论如何要解决这个问题?(见 GIF) 在鼠标离开按钮之前观看高亮结束,然后当我再次这样做时,但速度较慢它工作正常......

4

2 回答 2

2

从我们下面的讨论中,我了解到您已经在情节提要中声明了 UIGestureRecognizers,但也不必要地在代码中添加了它们。尝试取消它们,查看 UIButton 触摸是否按预期工作,然后决定策略 - 要么在情节提要中创建并分配它们,要么全部在代码中。

于 2013-05-12T18:27:10.270 回答
1

我已经修好了!(最后,我很愚蠢) TouchUpInside/TouchUpOutside 没有被调用的原因是因为我忘了添加

    myGesture.cancelsTouchesInView=NO;

对于我所有的手势识别器,无论如何,谢谢大家。

于 2013-05-14T18:01:46.243 回答