(转载)Objective-C多个UIButton同时点击问题

简介: 今天看到一个有趣的属性,可以避免同一个界面上的多个button同时点击。于是就想把这篇博文记录下来,为了尊重原作者,把原文地址贴在前面。原文地址:http://blog.csdn.net/liu1347508335/article/details/50617644一个页面的两个或者多个button如果不设置的话是可以同时点击的,如果事件冲突的话就会出问题,如“发送”和“取消”。

今天看到一个有趣的属性,可以避免同一个界面上的多个button同时点击。于是就想把这篇博文记录下来,为了尊重原作者,把原文地址贴在前面。
原文地址:http://blog.csdn.net/liu1347508335/article/details/50617644
一个页面的两个或者多个button如果不设置的话是可以同时点击的,如果事件冲突的话就会出问题,如“发送”和“取消”。一些push操作也会push多个页面,交互十分不友好。解决方法是设置button的exclusiveTouch为YES。

button.exclusiveTouch = YES;

ExclusiveTouch的作用是:可以达到同一界面上多个控件接受事件时的排他性,从而避免一些问题。也就是说避免在一个界面上同时点击多个button。
如果一个页面的button太多的话一个一个设置会比较麻烦,可以这样:

-(void)setExclusiveTouchForButtons:(UIView *)myView
{
    for (UIView * button in [myView subviews]) {
        if([button isKindOfClass:[UIButton class]])
            [((UIButton *)button) setExclusiveTouch:YES];
        else if ([button isKindOfClass:[UIView class]]){
            [self setExclusiveTouchForButtons:button];
        }
    }
}

但是这样需要在每个控制器都要设置。可以采用一句话来代替这样的设置,在AppDelegate中添加:

 [[UIButton appearance] setExclusiveTouch:YES];

有人可能不知道模拟器怎么模拟两根手指同时点击的事件,补充一下:按住option键调节两根手指的距离,再按住Shift键调整两根手指的位置(option键不要放开);这样就模拟点击屏幕上任意两点的位置。

目录
相关文章
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
106 2
|
5天前
|
缓存 开发工具 iOS开发
优化iOS中Objective-C代码调起支付流程的速度
优化iOS中Objective-C代码调起支付流程的速度
15 2
|
4月前
|
安全 JavaScript 前端开发
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
75 0
|
编译器 API iOS开发
iOS 代码规范格式 Objective-C(下)
iOS 代码规范格式 Objective-C(下)
193 0
|
iOS开发 容器
iOS 代码规范格式 Objective-C(上)
iOS 代码规范格式 Objective-C
384 0
iOS 代码规范格式 Objective-C(上)
|
机器学习/深度学习 API iOS开发
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
142 0
|
存储 自然语言处理 Java
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
220 0
|
存储 安全 C语言
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(一)
【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态(一)
162 0
|
自然语言处理 Go iOS开发
iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?
如果你的公司也正计划跟随 iOS 软件开发,那么你需要作出一个至关重要的决定。你需要为你的产品选择合适的技术组合。你的目标是什么?如果是原生应用开发而不是跨平台软件,你会选用哪种编程语言?久经考验的 Objective-C 还是 Swift?