//限制UIView的某些操作在指定时间内只触发一次.
public extension UIView {
private struct FqOnceTapTagKeys {
static var fqOnceTapTagKey = "fqPushTagKeys"
}
//记录当前是否可以点击跳转.默认为true
@objc dynamic var fqOnceTapTag:Bool {
set {
objc_setAssociatedObject(self, &FqOnceTapTagKeys.fqOnceTapTagKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_ASSIGN)
}
get {
if let hasPush = objc_getAssociatedObject(self, &FqOnceTapTagKeys.fqOnceTapTagKey) as? Bool {
return hasPush
}
return true
}
}
/// 限制连续点击多次跳转的异常
/// - Parameters:
/// - intervalTime: 限制触发以后.间隔多长时间可再次触发
/// - handBlock: 触发处理回调
@objc func fqLimitHandingOnce(_ intervalTime : Double = 0.4,handBlock: ()->()) {
if self.fqOnceTapTag == true {
self.fqOnceTapTag = false
handBlock()
self.perform(#selector(fqCancelLimitHandingOnceTap), afterDelay: intervalTime)
}
}
//取消限制
@objc func fqCancelLimitHandingOnceTap() {
self.fqOnceTapTag = true
}
}
快速点击多次响应的解决方案
推荐阅读更多精彩内容
- 前言 最近好多用户吐槽我们公司app列表滑动不跟手(就是滑动的时候手指触摸屏幕滑动停不下来),初步推测是封装的Re...
- 点击选项完全无响应,因为下拉列表超出了灰色的父控件范围,照成响应链中断 扩大父控件范围,当然可以解决此问题. 第二...
- 今天在重构IM聊天界面的时候遇到了一个很奇葩的问题,功能区里面嵌套了GridView,但是在点击第一个Item的时...
- 如果在cell上添加了一个Tableview,但是tableview的范围超出了cell的frame。 此时你去点...
- 问题:在使用高德地图SDK时,高度定制calloutView响应气泡,但发现自定义气泡里的点击事件并不响应。 原因...
- 问题演示 我们经常看到这样的app,它的tabBar上中间的按钮超出了tabBar的范围,但是我们在实际做的时候会...
- UIImagePickerController的delegate类中实现UINavigationControlle...
- web项目中有对渲染后的列表进行复制文字的操作,采用了clipboard.js的方案,免去了解决兼容性的烦恼,但是...
- 设置一个布尔变量,默认可以点击按钮,点击按钮后这个值设置为否,延迟5秒后,变为可响应事件状态。这个方法比较简单。 ...
- 说明一下我的使用情况。点击图片查看,出大图预览 不需要有预览小图。查看官网文档,下载js文件。引入文件。 不需要预...
- 总结:对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。对于HTML元素我们自己自定义的DOM属性...
- 能来到这里的兄弟姐妹 我猜肯定被折磨了数个小时有的就直接隔那了 那么我们来解决这个 点击了2下导航后出现报错的问题...
- 前言 Google Play应用市场对于应用的targetSdkVersion有了更为严格的要求。从 2018 年...