我想在表格视图单元格中接受单击和双击。我的每个单元格中都有带标签的可点击标签,我希望保持可点击状态。这是一种独立的交互,与用户点击标签以外的地方时应该发生的交互不同。
我注意到,根据我的说法或Google的问题,我会得到2个不同的答案。
解决方案A: UITapGestureRecognizer - single tap and double tap 它接受的答案表明有2个轻微的手势识别器有延迟,并且有大量的upvotes。
解决方案B。
我在几个线程上看到的另一个解决方案是在tableView:didSelectRowAtIndexPath:
中实现一个tap计数器,并结合一个短计时器。有许多这些线程作为公认的答案,但它们都没有任何接近解决方案A的答案。
为什么一个比另一个好?
两个解决方案的问题在于,手势会吸引我的属性标签点击,而...didSelectRow...
解决方案会阻止用户快速点击多个单元格而不会出现问题;这是草率的,留下了错误的空间。
答案 0 :(得分:0)
你可以有两个手势。
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClikOneTap:)];
tapGesture.numberOfTapsRequired = 1;
和
UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onClikDoubleTap:)];
doubleTapGesture.numberOfTapsRequired = 2;
使用魔术线进行控制
[tapGesture requireGestureRecognizerToFail:doubleTapGesture];
这在很多场合对我有用。