UIButton三狀態切換小技巧(可擴充套件至更多狀態)
之前寫專案的時候,一般對於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種以上的狀態,我建議直接用列表選擇,會更有效率。
如有想法,歡迎分享,謝謝大家!
相關文章
- mobx-簡單可擴充套件的狀態管理庫套件
- win10中word怎麼切換改寫狀態_win10怎樣切換插入狀態和改寫狀態Win10
- 工作流從無狀態切換到有狀態的好處
- Flutter | 狀態管理擴充篇——RxDart(四)FlutterDart
- Java執行緒狀態及切換Java執行緒
- [- Flutter 狀態篇 -] 主題色切換+國際化 三連Flutter
- [擴充套件] hieu-le active 判斷導航元素的 active 狀態套件
- 2020DevOps狀態報告——平臺模型:擴充套件DevOps的新方法dev模型套件
- Java執行緒生命週期與狀態切換Java執行緒
- 【演算法】狀態之美,TCP/IP狀態轉換探索演算法TCP
- 一個好用的檢視Angular應用ngrx狀態的Chrome擴充套件:Redux devToolsAngularChrome套件Reduxdev
- Azure Load Balancer : 動態擴充套件套件
- vmware_vmware Esxi無法在開機狀態擴充套件虛擬硬碟的問題套件硬碟
- 檢查Capital許可狀態API
- React專題:可變狀態React
- 程式的狀態與轉換
- 三高Mysql - 搭建“三高”架構之擴充套件與切換MySql架構套件
- MoE 系列(三)|使用 Istio 動態更新 Go 擴充套件配置Go套件
- 前端狀態管理與有限狀態機前端
- c# ExpandoObject動態擴充套件物件C#Object套件物件
- 小程式全域性狀態管理
- HTTP協議(三):狀態碼HTTP協議
- Java執行緒狀態轉換Java執行緒
- Input-Source-Pro:自動切換輸入法並提示狀態
- 可擴充套件性套件
- React 狀態管理:狀態與生命週期React
- 一個小技巧助您減少if語句的狀態判斷
- 狀態管理
- 狀態碼
- 狀態機
- 狀態列
- Spring Cloud Gateway 擴充套件支援動態限流SpringCloudGateway套件
- 透徹講解,Java執行緒的6種狀態及切換Java執行緒
- 如何檢視CATIA許可證狀態
- android判斷狀態列是否可見Android
- Flutter | 狀態管理探索篇——BLoC(三)FlutterBloC
- Oracle DG資料庫狀態轉換Oracle資料庫
- 實現自動切換主題的 VSCode 擴充套件VSCode套件
- 尋:第三方擴充套件(狀態機、工作流)元件開發過類似公文審批系統的大佬?套件元件