UIView有個(gè)exclusiveTouch的屬性,這個(gè)屬性主要是解決多個(gè)控件同時(shí)響應(yīng)事件的問題,將exclusiveTouch設(shè)置為YES的話可以阻止同一個(gè)window中其他控件與他響應(yīng),默認(rèn)為NO。
舉個(gè)例子:頁(yè)面中有按鈕buttonA 和 buttonB,點(diǎn)擊ButtonA會(huì)push該頁(yè)面,點(diǎn)擊ButtonB則會(huì)pop該頁(yè)面,如果同時(shí)點(diǎn)擊這個(gè)按鈕的話頁(yè)面就會(huì)連續(xù)出現(xiàn)pop和push的效果。如果設(shè)置了exclusiveTouch為YES的話則可以避免發(fā)生這種事情。
方法一:
可以使用 appearance 在APPDelegate中對(duì)UIButton進(jìn)行統(tǒng)一的設(shè)置。
[[UIButton appearance] setExclusiveTouch:YES];
由于exclusiveTouch這個(gè)屬性是UIView的屬性,所以也可以這樣寫:
[[UIView appearance] setExclusiveTouch:YES];
兩者有什么區(qū)別需要大家自己體驗(yàn)喲~
方法二:
-(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~~~