首页 > 代码库 > 自定义Button,并实现禁止快速点击
自定义Button,并实现禁止快速点击
一、一般在开发工程中,我们都会要求处理快速多次点击按钮的操作 ,实际上只能点击一次 ,但是不能自我想象,所有的用户都会
按照自己的想法去操作一个功能,所以我们要禁止按钮的快速多次点击
二、实现方法
思路一:实现方法很简单,就是在点击button的时候,把btn的enable属性设置为NO,然后再调用
performSelector: withObject: afterDelay: 这个方法去讲btn 的状态激活,这样就要求每一个用到按钮的地方都要这么做,非常繁琐
思路二:定义一个通用的btn的基类,然后检测自身,在什么时候会被点击,然后再做修改,但是这样就由涉及到一个问题 ,怎么监测自身在什么时候被点击了--不方便
思路三:自定义一个继承自UIButton的类、然后重写父类的方法、尝试了一下,可行,使用非常方便,重写的方法是
- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event
见效果图
贴出代码共参考
//// CommonButton.h// CommonButton//// Created by pk on 14/12/24.// Copyright (c) 2014年 pk. All rights reserved.//#import <UIKit/UIKit.h>@interface CommonButton : UIButton@end
//// CommonButton.m// CommonButton//// Created by pk on 14/12/24.// Copyright (c) 2014年 pk. All rights reserved.//#import "CommonButton.h"@implementation CommonButton/*// Only override drawRect: if you perform custom drawing.// An empty implementation adversely affects performance during animation.- (void)drawRect:(CGRect)rect { // Drawing code}*/- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event{ [super sendAction:action to:target forEvent:event]; self.enabled = NO; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ self.enabled = YES; });}@end
是不是很方便
自定义Button,并实现禁止快速点击
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。