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~~~

你可能感兴趣的:(iOS 多个UIButton同时点击问题(exclusiveTouch))