UIButton三狀態切換小技巧(可擴充套件至更多狀態)

weixin_34208283發表於2017-09-02

之前寫專案的時候,一般對於UIButton的狀態的使用,最常見的就是點選後,把Button的selected的狀態進行非操作,讓它在兩個狀態之間來回切換,一般的需求也就是這樣,但是這次的專案中,遇到需要三種狀態切換的,用了個很次的方法處理,但是後期再處理其他專案的時候,突發奇想,其實三種狀態也可以做的到,不需要依賴於Button本身的狀態去考慮,一下就是對這個想法的分享,如果大家有更好的方法,也希望能夠回覆我,對我指點一下,謝謝大家。

話不多說,以按鈕有三個狀態來考慮,每次點選,自動從1切換到2,2切換到3,3切換到1,如此反覆,思路也簡單,取餘,直接上程式碼:

- (IBAction)orderStatusAction:(UIButton *)sender {
    //讓索引值每次取餘3後再賦值給自身,這樣,就在一個0~2之間的範圍迴圈
    self.statusIndex = (self.statusIndex + 1) % 3;
    switch (self.statusIndex) {
        case 0:
            [self.orderStatusButton setTitle:@"狀態1" forState:UIControlStateNormal];
            break;
        case 1:
            [self.orderStatusButton setTitle:@"狀態2" forState:UIControlStateNormal];
            break;
        default:
            [self.orderStatusButton setTitle:@"狀態3" forState:UIControlStateNormal];
            break;
    }
}

這就是我的一點思路,我覺得挺好用的,如果需要更多狀態,可以取4、5、6...等數字的餘數,但是一般只用於三種狀態就好了,4種以上的狀態,我建議直接用列表選擇,會更有效率。

如有想法,歡迎分享,謝謝大家!

相關文章