編寫alert的初衷是由於工作的需要和使用系統的alert彈框,編寫起來太過於麻煩,需要寫好多行的程式碼,本打算想編輯儲存成程式碼塊,通過敲關鍵字生成,但是最終一狠心,自己便寫了一個原生alert彈框,同時基於該原生框架的RN庫也釋出了(文章底下的連結),具體api和效果如下:
專案整合 pod 'TRCustomAlert'
匯入標頭檔案 #import "TRCustomAlert.h"
前言:該框架api呼叫均為類方法,在設定樣式時,需建立彈框實體在設定樣式
專案API組成
api總共分為四個部分
- 簡單提示框型別
- 帶按鈕強提示框型別
- 載入等待(loading)提示框型別
- 彈框屬性設定
1、簡單提示框樣式
簡單提示框,預設消失時間為2秒
方法名 | 說明 |
---|---|
+(void)showSuccessWithMessage:(NSString *)message |
顯示簡單成功提示框 |
+(void)showErrorWithMessage:(NSString *)message |
顯示簡單錯誤提示框 |
+(void)showWarningWithMessage:(NSString *)message |
顯示簡單警告提示框 |
+(void)showShadeSuccessWithMessage:(NSString *)message |
顯示有遮罩簡單成功提示框 |
+(void)showShadeErrorWithMessage:(NSString *)message |
顯示有遮罩錯誤提示框 |
+(void)showShadeWarningWithMessage:(NSString *)message |
顯示有遮罩警告提示框 |
+(void)showMessage:(NSString *)message image:(UIImage *)image |
顯示自定義頂部圖示簡單提示框,(引數傳nil可以,不顯示圖片) |
+(void)showShadeWithMessage:(NSString *)message image:(UIImage *)image |
顯示有遮罩自定義頂部圖示簡單提示框,(引數傳nil可以,不顯示圖片) |
+(void)showBottomMessage:(NSString *)message |
顯示在底部的純文字提示框 |
2、帶按鈕的強提示框
引數中
CustomAlertStyle
標識該彈框的型別分為以下三個型別,分別對應三種預設圖片
CustomAlertStyleSuccess,//預設成功圖片
CustomAlertStyleError,//預設錯誤圖片
CustomAlertStyleWarning,//預設警告圖片
CustomAlertStyleNone //沒有圖片
複製程式碼
方法名 | 說明 |
---|---|
+(void)showAlertFullWithStyle:(CustomAlertStyle)style title:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
自帶確定和取消,預設圖片樣式 |
+(void)showAlertFullWithImage:(UIImage *)image title:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
自帶確定和取消,自定義圖片樣式 |
+(void)showAlertFinishWithStyle:(CustomAlertStyle)style title:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
只有一個確定按鈕樣式,預設圖片 |
+(void)showAlertFinishWithImage:(UIImage *)image title:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
只有一個確定按鈕樣式,自定義圖片 |
+(void)showAlertWithButtonTitleArray:(NSArray<NSString *> *)titleArray style:(CustomAlertStyle)style title:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
自定義按鈕(titleArray 引數傳遞按鈕顯示字元即可),預設圖片樣式 |
+(void)showAlertWithButtonTitleArray:(NSArray<NSString *> *)titleArray image:(UIImage *)image title:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
自定義按鈕(titleArray 引數傳遞按鈕顯示字元即可),自定義圖片樣式 |
3、載入(loading)等待樣式
方法名 | 說明 |
---|---|
+(void)showLoading |
不帶文字的載入等待 |
+(void)showShadeLoading |
不帶文字的有遮罩的載入等待 |
+(void)showLoadingWithMessage:(NSString *)message |
帶文字的載入等待 |
+(void)showShadeLoadingWithMessage:(NSString *)message |
帶文字和遮罩的載入等待 |
4、隱藏以上窗體方法
+(void)dissmis;//隱藏
5、進度條和自定義檢視
進度條進度設定通過 @property(nonatomic,assign)CGFloat progress;//進度 0~1
屬性控制
方法名 | 說明 |
---|---|
+(instancetype)showProgressWithTitle:(NSString *)title content:(NSString *)content |
根據標題和內容建立進度條 |
+(instancetype)showProgressWithTitle:(NSString *)title content:(NSString *)content complete:(complete)completeBlock |
根據標題和內容建立帶按鈕的進度條 |
+(instancetype)showProgressWithTitle:(NSString *)title content:(NSString *)content buttonTitle:(NSString *)buttonTitle complete:(complete)completeBlock |
根據使用者自定義按鈕建立進度條 |
+(instancetype)showCustomeViewWithButtonTitleArray:(NSArray<NSString *> *)buttonTitleArray innerView:(UIView *)innerView title:(NSString *)title content:(NSString *)content complete:(customComplete)completeBlock |
根據使用者自定義按鈕和中間檢視,建立彈框 |
6、樣式設定
方法名 | 說明 |
---|---|
+(void)setBackgroundColor:(UIColor *)color |
設定背景色 |
+(void)setFontColor:(UIColor *)color; |
設定文字字型顏色(簡單框文字,按鈕框的內容,loading框文字) |
+(void)setFont:(UIFont *)font |
設定文字字型字型(簡單框文字,按鈕框的內容,loading框文字) |
+(void)setTitleColor:(UIColor *)color |
設定按鈕框標題顏色 |
+(void)setTitleFont:(UIFont *)font |
設定按鈕框標題字型 |
+(void)setButtonColor:(UIColor *)color |
設定按鈕彈框底部所有按鈕顏色 |
+(void)setButtonFont:(UIFont *)font |
設定按鈕彈框底部所有按鈕字型 |
+(void)setButtonFont:(UIFont *)font color:(UIColor *)color |
設定按鈕彈框底部所有按鈕字型和顏色 |
+(void)setButtonColor:(UIColor *)color index:(NSInteger)index |
設定按鈕彈框底部按鈕index位置的顏色(這個位置和titleArray 傳遞的順序一致) |
+(void)setButtonFont:(UIFont *)font index:(NSInteger)index |
設定按鈕彈框底部按鈕index位置的字型(這個位置和titleArray 傳遞的順序一致) |
+(void)setButtonFont:(UIFont *)font color:(UIColor *)color index:(NSInteger)index |
設定按鈕彈框底部按鈕index位置的字型和顏色(這個位置和titleArray 傳遞的順序一致) |
+(void)setAlertCornerRadius:(CGFloat)value |
設定彈框的圓角 |
7、部分效果圖
喜歡的請不要吝嗇你的star,使用中有什麼問題或者有好的建議都可以提issues