iOS原生彈框框架-TRCustomAlert

Cocoma發表於2018-10-25

編寫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、部分效果圖

iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert

iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert

iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert

iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert

iOS原生彈框框架-TRCustomAlert iOS原生彈框框架-TRCustomAlert

喜歡的請不要吝嗇你的star,使用中有什麼問題或者有好的建議都可以提issues

TRCustomeAlert gitHub

TRCustomeAlert-RN gitHub

相關文章