iOS 防止按钮多次点击造成多次响应的方法_IOS

iOS 防止按钮多次点击造成多次响应的方法

在日常开发中经常会碰到一种bug就是因为用户快速点击某个按钮,导致页面重复push或者重复发送网络请求。这样的问题既对用户体验有影响,而且还会一定程度上增加服务器的压力。

目前,我为了防止按钮快速点击主要使用以下两种办法

1.在每次点击时先取消之前的操作(网上看到的方法)

- (void)buttonClicked:(id)sender
{
  //这里是关键,点击按钮后先取消之前的操作,再进行需要进行的操作
  [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(buttonClicked:) object:sender];
  [self performSelector:@selector(buttonClicked: )withObject:sender afterDelay:0.2f];
}

2.点击后将按钮置为不可点击状态,几秒后恢复

-(void)buttonClicked:(id)sender{
  self.button.enabled = NO;
  [self performSelector:@selector(changeButtonStatus) withObject:nil afterDelay:1.0f];//防止用户重复点击
}

-(void)changeButtonStatus{
  self.button.enabled = YES;
}

或者使用:

- (void) timeEnough
{

UIButton *btn=(UIButton*)[self.view viewWithTag:33];

btn.selected=NO;
[timer invalidate];

timer=nil;
}

 - (void) btnDone:(UIButton*)btn
 {
 if(btn.selected) return;
 btn.selected=YES;
 [self performSelector:@selector(timeEnough) withObject:nil afterDelay:3.0]; //使用延时进行限制。
//to do something.
}

如果大家有更好的解决办法,欢迎大家留言说明。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ios
js防止按钮多次点击、ios防止按钮多次点击、防止按钮多次点击、jquery 防止多次点击、http一次请求多次响应,以便于您获取更多的相关知识。

时间: 2024-10-26 14:51:17

iOS 防止按钮多次点击造成多次响应的方法_IOS的相关文章

mfc对话框添加一个button按钮,为什么点击两次才能响应

问题描述 mfc对话框添加一个button按钮,为什么点击两次才能响应 mfc对话框添加一个button按钮,为什么点击两次才能响应,急急急,拜托解答下 解决方案 你按钮里面怎么写的,有没有什么判断的逻辑,需要第二次点击才能触发. 解决方案二: m_bOpenPort=!m_bOpenPort; //点一次改变一次,和m_bOpenPort初值有关 解决方案三: 是消息处理函数的问题吧?不知道你的响应是指什么. 按钮没放多了?挪开按钮,看看下面还有没有. 解决方案四: 是不是两次点击连接在一起了

IOS中使用UIWebView 加载网页、文件、 html的方法_IOS

 UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法: 1.通过storyboard 拖拽 2.通过alloc init 来初始化 创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话 - (UIWebView *)webView

iOS touch事件区分单击双击响应的方法_IOS

如果您的 iPhone 应用里有个 view,既有单击操作又有双击操作.用户双击 view 时,总是先执行一遍单击的操作再执行双击的操作.所以直接判断时就会发现不能直接进入双击操作.下面是区分 touch 事件是单击还是双击的方法 -(void)singleTap{ NSLog(@"Tap 1 time"); } -(void)doubleTap{ NSLog(@"Tap 2 time"); } - (void)touchesBegan:(NSSet *)touch

iOS设置UIButton文字显示位置和字体大小、颜色的方法_IOS

前言 大家都知道UIButton按钮是IOS开发中最常用的控件,作为IOS基础学习教程知识 ,初学者需要了解其基本定义和常用设置,以便在开发在熟练运用. 一.iOS设置UIButton的字体大小 btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlStateNormal]; //设置按钮上的自体的大小 //[btn setFont: [UIFont system

iOS开发中常见的解析XML的类库以及简要安装方法_IOS

在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.TinyXML和GDataXML.问题是应该选择哪一个呢? 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值.而且通常情况下,可以借助XPath,直接查询XML节点. SAX

iOS开发中UITableview控件的基本使用及性能优化方法_IOS

UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) 复制代码 代码如下: #import <Foundation/Foundation.h> @interface NJHero : NSObject /**  *  头像  */ @property (nonatomic, copy) NSString *icon; /**  *  名称  */ @property (nonatomic, copy) NSString *name; /**  

iOS开发中用imageIO渐进加载图片及获取exif的方法_IOS

imageIO完成渐进加载图片 一.常见渐进加载图片模式   目前我们看到的渐进加载主要有以下三种实现方式:   1)  依次从web上加载不同尺寸的图片,从小到大.最开始先拉取一个小缩略图做拉伸显示,然后拉取中等规格的图,拉取完毕直接覆盖显示,最后拉取原图,拉取完成后显示原图.   2)直接从web上拉取最大的图片,每接受一点儿数据就显示一点儿图片,这样就会实现从上到下一点点刷新出来的效果.   3)结合第1种和第2种,先拉取一个缩略图做拉伸显示,然后采用第二种方法直接拉取原图,这样即可以实现

ios开发中怎样实现点击按钮之后打开一个新的webview ?

问题描述 ios开发中怎样实现点击按钮之后打开一个新的webview ? 我自己做的登录验证页面,验证那一部分做完了,我想要点击按钮之后直接跳转到一个网页,这中间的具体步骤该如何实现?我需要在故事板中构造一个界面来存放webview吗. 解决方案 可以用代码实现,也可以用StoryBoard实现. 图一: 1.在StoryBoard中新建一个ViewController,在文件中新建一个Cocoa Touch Class,将Cocoa Touch Class绑定到ViewController上,

ios通过按钮点击异步加载图片_IOS

比较原始的方法: 复制代码 代码如下: AsyncImageView.h: #import <UIKit/UIKit.h> @interface AsyncImageView : UIView {     NSURLConnection* connection;     NSMutableData* data; } - (void)loadImageFromURL:(NSURL*)url; @end AsyncImageView.m: #import "AsyncImageView.