iOS屏蔽高频点击技巧
2024-08-26 19:15:31
例如高频率点击一个按钮或者TableViewCell,会造成功能多次重复执行,在异步网络请求时候或者多线程时候,造成的问题尤其明显。
解决方法:
声明一个属性self.actionWorking ,标识是否有任务在执行,如果有就返回,如果没有就self.actionWorking= YES;然后通过
- (void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval)delay;
来执行目标操作,执行之后,self.actionWorking = NO;
例如:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.actionWorking)
{
return;
}
self.actionWorking = YES;
[self performSelector:@selector(someAction:) withObject:nil afterDelay:0.5];
return;
}
-(void)someAction:(NSObject*)object{
// do some working
self.actionWorking = NO;
}
最新文章
- 01 java开发前小知识
- QuickHit快速击键小程序 --S2.4.5
- ios 引入第三方库 运行时找不到函数实现
- 【leetcode】Course Schedule(middle)☆
- 通过Ajax——异步获取相关问题解答
- java中DriverManager跟DataSource获取getConnection有什么不同?
- asp.net中下载文件的问题
- java 小结2 多态问题和容器介绍
- visual studio 2015 企业版 序列号及官方下载地址
- IBinder对象在进程间传递的形式(一)
- TP-Link路由器的设置
- vue---checkbox,获取选中的值
- R语言学习网址
- Mina简单的入门示例
- 【javascript】script标签的async异步解析
- Java中实现多线程继承Thread类与实现Runnable接口的区别
- 区分重载(overload),覆盖(Override)和隐藏(hide)
- 使用 MtVerify.h头文件 ,用的时候把他头文件的内容添加到项目
- Simple2D-18(音乐播放器)使用 bass 音频库
- 7 个 Bootstrap 在线编辑器用于快速开发响应式网站