iPhone UIButton - 滑动与触摸

时间:2011-05-26 17:39:54

标签: iphone uibutton swipe

我将UIButton子类化为自定义绘图(覆盖drawRect)和其他一些自定义行为,其中以下是相关的(并且是微不足道的):

  1. 如果按下(UIControlEventTouchDown),则“按下”标志会打开(影响自定义绘图,类似于“突出显示”)。
  2. 如果在内部发布(UIControlEventTouchUpInside),我的OnClick功能会被触发。
  3. 如果它被释放到外面(UIControlEventTouchUpOutside),则标志“已按下”将被关闭。
  4. 我现在想要为按钮添加一个额外的行为,以便识别滑动手势(使用UISwipeGestureRecognizer),并影响按钮内容。问题在于,当预先形成滑动手势时,TouchDown会实际触发,导致按钮显示为“按下”,这在滑动过程中不是我的意图。

    我的问题是,是否有一种优雅的方法来避免这种情况。也许类似于滚动视图的DelaysContentTouches,它会将滑动行为与按下行为分开。我能看到的唯一另一种选择是把我自己的计时器弄乱,我希望尽可能避免。

    谢谢!

1 个答案:

答案 0 :(得分:0)

DannyA。这是我的解决方案:

还使用UITapGestureRecognizer

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAction:)];

然后,在didTapAction:选择器

中实现此功能
[UIButton setHighlighted:YES];

[UIButton performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.15];

这对我来说很好。