iPhone UIButton-轻扫与触摸

问题描述

| 我将UIButton子类化为自定义绘图(覆盖
drawRect
)和一些其他自定义行为,其中以下内容是相关的(且不重要): 如果按下(
UIControlEventTouchDown
),则标志“已按下”被打开(影响自定义图形,有点像“突出显示”)。 如果在(
UIControlEventTouchUpInside
)内释放,则触发我的
OnClick
函数。 如果将其释放到外部(
UIControlEventTouchUpOutside
),则标记“已按下”被关闭。 我现在想向按钮添加其他行为,以便它可以识别滑动手势(使用
UISwipeGestureRecognizer
),并影响按钮的内容。问题在于,在执行滑动手势时,“ 6”键会按实际情况触发,导致按钮显示为“已按下”,这并不是我在滑动时的意图。 我的问题是,是否有一种优雅的方法来避免这种情况。也许类似于滚动视图的ѭ7something的东西,会将滑动行为与按下行为分开。我能看到的唯一其他选择是弄乱计时器,如果可能的话,我宁愿避免使用计时器。 谢谢!     

解决方法

丹妮这是我的解决方案: 也使用
UITapGestureRecognizer
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapAction:)];
然后,在
didTapAction:
选择器中实现
[UIButton setHighlighted:YES];

[UIButton performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.15];
那对我来说很好。