//限制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的时...