防止UIButton被点击多次

作者: StephenCurry300 | 来源:发表于2016-10-25 10:30 被阅读156次

场景

在iOS开发中,我们经常会遇到这么个问题:用户点击了一个按钮,此时app出现了卡顿,用户以为没有点到,于是又点了一下,这时app不卡了,开始了push操作,此时就会出现push两次的情况,这显然是不对的,那么我们在开发中应该如何避免这种问题的发生呢?下面我们就介绍一种方法。

解决方法

解决方法其实很简单,就是在每次点击UIButton时,将之前的UIButton事件取消掉即可,这就是实现思路,下面我们看具体的实现。

  • 第一步不用多说,自然是先创建一个UIButton并给他添加点击事件。
  • 第二步是最主要的,实现UIButton的点击事件,分为2步:
    • 取消之前UIButton的点击事件,代码如下:
 [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(goSecondVC) object:sender]; 
  • 执行UIButton点击事件:
[self performSelector:@selector(goSecondVC) withObject:sender afterDelay:0.1];

注意

  1. 这里为什么要使用performSelector:withObject:afterDelay:来执行UIButton的点击事件,而不是直接调用goSecondVC,这是因为cancelPreviousPerformRequestsWithTarget:selector:object:只能取消performSelector:withObject:afterDelay:执行的操作。
  2. afterDelay:0.1这里的延迟时间个人感觉比较讲究,网上有些同学设置的0.2,我试了一下,感觉有点延迟的太长了,用户体验不好,但是如果不延迟,即设置为0.0的话,是没有任何卵用的,所以我个人感觉设置成0.1是最好的,既可以实现效果,又不会让用户感觉到延迟。

ok,问题解决了。🙃🙃🙃

相关文章

网友评论

    本文标题:防止UIButton被点击多次

    本文链接:https://www.haomeiwen.com/subject/qhdruttx.html