iOS小技巧:用runtime 解决UIButton 重复点击问题
2015-09-11 10:42
477 查看
http://www.cocoachina.com/ios/20150911/13260.html
作者:uxyheaven 授权本站转载。
什么是这个问题
我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题.
通常是如何解决
我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击.
如果涉及到按钮不同状态不同样式的时候, 用enabled不见得够用.还得额外加个变量来记录状态.
笔者举的例子是直接在响应事件的周期内直接禁止点击的. 如果想做1秒内禁止重复点击的话,则得用performSelector:withObject:afterDelay:
漂亮的解决是怎样的
有了重复的代码段就是有了一个共性, 就可以抽象出来.
我们可以给按钮添加一个属性重复点击间隔, 通过设置这个属性来控制再次接受点击事件的时间间隔.
在app启动的时候,我们hook 所有的按钮的 event
在我们的点击事件里呢,对点击事件做下过滤
实际使用起来就是这个样子
文章至此就结束了.虽然不推荐大范围用runtime, 但是小范围内使用还是可以解决不少小问题的.
版权声明:本文为博主原创文章,未经博主允许不得转载。
作者:uxyheaven 授权本站转载。
什么是这个问题
我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题.
通常是如何解决
我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击.
漂亮的解决是怎样的
有了重复的代码段就是有了一个共性, 就可以抽象出来.
我们可以给按钮添加一个属性重复点击间隔, 通过设置这个属性来控制再次接受点击事件的时间间隔.
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 关于区别docuemnt.write()和document.getELementById().innerHTML=""
- UINavigationController视图控制器切换(二)
- 如何解决UITextView文字上面一段空白,不是垂直置顶
- [LeetCode] Unique Paths II
- iOS小技巧:用runtime 解决UIButton 重复点击问题
- Android Call requires API level 11 (current min is 8)的解决方案
- iOS-UIScrollView的delaysContentTouches与canCencelContentTouches属性
- 01_ROS_Fuerte安装
- Xcode报错:loaded the "INY-Ym-jyd-view-lgW-0n-hka" nib but didn't get a UITableView
- e袋洗 build.gradle
- UITableViewCell Storyboard加载错误解决
- requestAnimationFrame,Web中写动画的另一种选择
- Java Map 按key排序和按Value排序
- LeetCode Implement Queue using Stacks
- Sequencher_v4.1.4 DNA 序列分析的工业标准软件
- Sequencher_v4.1.4 DNA 序列分析的工业标准软件
- Sequencher_v4.1.4 DNA 序列分析的工业标准软件
- build package 剖析
- C# - String与StringBuilder
- 【项目3 - 体验复杂度之二 复杂度为O(nlogn) 的快速排序quicksort】