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