iOS 多個(gè)UIButton同時(shí)點(diǎn)擊問題(exclusiveTouch)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容