iOS 創建多個button實現點擊改變背景顏色


工程中需要實現與UISegmentedControl效果相似的一排一共十個button,如下圖.但是SegmentedControl修改不太方便,就用button替代,

循環創建十個button,點擊改變背景色.其他的沒被點的button的背景恢復默認.之前也寫過,因為button太多,需要各種判斷.感覺之前方法的方法比較麻煩.
. iOS <wbr>創建多個button實現點擊改變背景顏色

第一種方法

在創建button的時候,把所有的button存儲到可變數組里,在button點擊事件里面,拿到之前的可變數組,對里面的每一個button遍歷,遍歷的時候判斷是否是當前點擊的button,是的話,就改變背景顏色,否則把置為初始顏色.但是這個方法應該可以優化,遍歷的時候數量多的時候,也會出現延遲,所以我又想到了下一個方法.
//_btnMutableArray 存儲button的可變數組

- (void)buttonOfAction:(UIButton *)sender {

for (UIButton *btn in _btnMutableArray) {

        if (btn.tag == sender.tag) {

            btn.backgroundColor = [UIColor grayColor];

        } else {

            btn.backgroundColor = [UIColor redColor];

        }

    }

}

 

 

第二種方法
用UIButton類型的變量存儲當前點擊的button,判斷一下下一次點擊的button和上次存儲的是不是同一個button,如果是同一個,就不做處理,如果不是就改變當前點擊的背景,恢復上一次的背景,
 
//

- (void)buttonOfAction:(UIButton *)sender {

if (_btn2 == sender) {

    //不做處理

    } else {

        sender.backgroundColor = [UIColor grayColor];

        _btn2.backgroundColor = [UIColor redColor];

    }

 

    _btn2 = sender;

 

}

暫時只想到這兩個方法,希望iOS <wbr>創建多個button實現點擊改變背景顏色你有好的方法,可以和你學習.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM