问题描述
|
我将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];
那对我来说很好。