我将UIButton子类化为自定义绘图(覆盖drawRect
)和其他一些自定义行为,其中以下是相关的(并且是微不足道的):
UIControlEventTouchDown
),则“按下”标志会打开(影响自定义绘图,类似于“突出显示”)。UIControlEventTouchUpInside
),我的OnClick
功能会被触发。UIControlEventTouchUpOutside
),则标志“已按下”将被关闭。我现在想要为按钮添加一个额外的行为,以便识别滑动手势(使用UISwipeGestureRecognizer
),并影响按钮内容。问题在于,当预先形成滑动手势时,TouchDown
会实际触发,导致按钮显示为“按下”,这在滑动过程中不是我的意图。
我的问题是,是否有一种优雅的方法来避免这种情况。也许类似于滚动视图的DelaysContentTouches
,它会将滑动行为与按下行为分开。我能看到的唯一另一种选择是把我自己的计时器弄乱,我希望尽可能避免。
谢谢!
答案 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];
这对我来说很好。