iOS 多个UIButton同时点击问题(exclusiveTouch)

UIView有个exclusiveTouch的属性,这个属性主要是解决多个控件同时响应事件的问题,将exclusiveTouch设置为YES的话可以阻止同一个window中其他控件与他响应,默认为NO。
举个例子:页面中有按钮buttonA 和 buttonB,点击ButtonA会push该页面,点击ButtonB则会pop该页面,如果同时点击这个按钮的话页面就会连续出现pop和push的效果。如果设置了exclusiveTouch为YES的话则可以避免发生这种事情。

方法一:
可以使用 appearance 在APPDelegate中对UIButton进行统一的设置。

[[UIButton appearance] setExclusiveTouch:YES];

由于exclusiveTouch这个属性是UIView的属性,所以也可以这样写:

[[UIView appearance] setExclusiveTouch:YES];

两者有什么区别需要大家自己体验哟~

方法二:

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

好了,over~~~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容