获得一个按钮以便能够同时执行Touch Up Inside操作和Touch Down Repeat操作的最佳方法是什么?有点像iPhone上的Home按钮:单击一次到主屏幕,但两次快速单击打开多任务处理栏。现在,我的按钮已经连接了两个方法,但是Touch Up Inside方法(毫不奇怪)在Touch Down Repeat发生之前就会被调用。
我可以想出几种方法来完成这个任务(让Touch up内部方法等一下,看看执行之前是否有另一次单击,在第一次单击之后有第二个按钮不可见地移动到位置,等等),但它们似乎都是一种黑客攻击,可能会导致性能损失和错误。我找到了tapCount属性,但是它是用于UITouch而不是UIButton的,因此if([_buttonAddItems tapCount] > 1) {} else if([_buttonAddItems tapCount] == 1) (这似乎是最有效的方法)无法工作。
这类事情有最好的做法吗?或者如果没有,是否有人有更好的方法来完成这个任务?
发布于 2013-08-16 20:04:43
尝试将两个触摸事件与您的按钮断开,并将两个点击手势识别器挂在上面。下面是一个link to an answer,它解释了如何设置两个手势识别器,以便其中一个识别单个抽头,另一个识别双击:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doSingleTap)];
singleTap.numberOfTapsRequired = 1;
[myButton addGestureRecognizer:singleTap];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doDoubleTap)];
doubleTap.numberOfTapsRequired = 2;
[myButton addGestureRecognizer:doubleTap];
// This is the "secret sauce":
[singleTap requireGestureRecognizerToFail:doubleTap];https://stackoverflow.com/questions/18281197
复制相似问题