// // JXTAlertView.h // JXTAlertManager // // Created by JXT on 2016/12/20. // Copyright © 2016年 JXT. All rights reserved. // #import #define jxt_dispatch_main_async_safe(block)\ if ([NSThread isMainThread]) {\ block();\ } else {\ dispatch_async(dispatch_get_main_queue(), block);\ } /** 回调主线程(显示alert必须在主线程执行) @param block 执行块 */ static inline void jxt_getSafeMainQueue(_Nonnull dispatch_block_t block) { jxt_dispatch_main_async_safe(block); } /** alert按钮执行回调 @param buttonIndex 按钮index */ typedef void (^JXTAlertClickBlock)(NSInteger buttonIndex); // MARK: 1.常规的alert /** * JXTAlertView: 两个按钮alert */ void jxt_showAlertTwoButton(NSString * _Nullable title, NSString * _Nullable message, NSString * _Nullable cancelButtonTitle, JXTAlertClickBlock _Nullable cancelBlock, NSString * _Nullable otherButtonTitle, JXTAlertClickBlock _Nullable otherBlock); /** * JXTAlertView: 一个按钮alert */ void jxt_showAlertOneButton(NSString * _Nullable title, NSString * _Nullable message, NSString * _Nullable cancelButtonTitle, JXTAlertClickBlock _Nullable cancelBlock); /** * JXTAlertView: 一个固定按钮alert */ void jxt_showAlertTitle(NSString * _Nullable title); /** * JXTAlertView: 一个固定按钮alert */ void jxt_showAlertMessage(NSString * _Nullable message); /** * JXTAlertView: 一个固定按钮alert */ void jxt_showAlertTitleMessage(NSString * _Nullable title, NSString * _Nullable message); // MARK: 2.无按钮toast /** * JXTAlertView: 无按钮toast,支持自定义关闭回调 */ void jxt_showToastTitleMessageDismiss(NSString * _Nullable title, NSString * _Nullable message, NSTimeInterval duration, JXTAlertClickBlock _Nullable dismissCompletion); /** * JXTAlertView: 无按钮toast,支持自定义关闭回调 */ void jxt_showToastTitleDismiss(NSString * _Nullable title, NSTimeInterval duration, JXTAlertClickBlock _Nullable dismissCompletion); /** * JXTAlertView: 无按钮toast,支持自定义关闭回调 */ void jxt_showToastMessageDismiss(NSString * _Nullable message, NSTimeInterval duration, JXTAlertClickBlock _Nullable dismissCompletion); /** * JXTAlertView: 无按钮toast */ void jxt_showToastTitle(NSString * _Nullable title, NSTimeInterval duration); /** * JXTAlertView: 无按钮toast */ void jxt_showToastMessage(NSString * _Nullable message, NSTimeInterval duration); // MARK: 3.文字HUD,代码执行关闭 /** * JXTAlertView: 文字HUD,jxt_dismissHUD()执行关闭 */ void jxt_showTextHUDTitleMessage(NSString * _Nullable title, NSString * _Nullable message); /** * JXTAlertView: 文字HUD,jxt_dismissHUD()执行关闭 */ void jxt_showTextHUDTitle(NSString * _Nullable title); /** * JXTAlertView: 文字HUD,jxt_dismissHUD()执行关闭 */ void jxt_showTextHUDMessage(NSString * _Nullable message); // MARK: 4.loadHUD,代码执行关闭 /** * JXTAlertView: loadHUD,jxt_dismissHUD()执行关闭 */ void jxt_showLoadingHUDTitleMessage(NSString * _Nullable title, NSString * _Nullable message); /** * JXTAlertView: loadHUD,jxt_dismissHUD()执行关闭 */ void jxt_showLoadingHUDTitle(NSString * _Nullable title); /** * JXTAlertView: loadHUD,jxt_dismissHUD()执行关闭 */ void jxt_showLoadingHUDMessage(NSString * _Nullable message); // MARK: 5.ProgressHUD,代码执行关闭 /** * JXTAlertView: ProgressHUD,jxt_dismissHUD()执行关闭 */ void jxt_showProgressHUDTitleMessage(NSString * _Nullable title, NSString * _Nullable message); /** * JXTAlertView: ProgressHUD,jxt_dismissHUD()执行关闭 */ void jxt_showProgressHUDTitle(NSString * _Nullable title); /** * JXTAlertView: ProgressHUD,jxt_dismissHUD()执行关闭 */ void jxt_showProgressHUDMessage(NSString * _Nullable message); /** * JXTAlertView: ProgressHUD,设置进度值 */ void jxt_setHUDProgress(float progress); // MARK: 6.HUD公用 /** * JXTAlertView: 设置HUD成功状态 */ void jxt_setHUDSuccessTitleMessage(NSString * _Nullable title, NSString * _Nullable message); /** * JXTAlertView: 设置HUD成功状态 */ void jxt_setHUDSuccessTitle(NSString * _Nullable title); /** * JXTAlertView: 设置HUD成功状态 */ void jxt_setHUDSuccessMessage(NSString * _Nullable message); /** * JXTAlertView: 设置HUD失败状态 */ void jxt_setHUDFailTitleMessage(NSString * _Nullable title, NSString * _Nullable message); /** * JXTAlertView: 设置HUD失败状态 */ void jxt_setHUDFailTitle(NSString * _Nullable title); /** * JXTAlertView: 设置HUD失败状态 */ void jxt_setHUDFailMessage(NSString * _Nullable message); /** * JXTAlertView: 关闭HUD */ void jxt_dismissHUD(); /** JXTAlertView 简介: 开发调试使用简易alert/HUD工具 部分提供C函数方便使用,所有show方法的C函数均默认回调主线程 */ @interface JXTAlertView : UIAlertView /** JXTAlertView: 最多支持两个按钮的alert @param title title @param message message @param cancelButtonTitle 取消按钮标题 @param otherButtonTitle 其他按钮标题 @param cancelBlock 取消按钮回调 @param otherBlock 其他按钮回调 */ + (void)showAlertViewWithTitle:(nullable NSString *)title message:(nullable NSString *)message cancelButtonTitle:(nullable NSString *)cancelButtonTitle otherButtonTitle:(nullable NSString *)otherButtonTitle cancelButtonBlock:(nullable JXTAlertClickBlock)cancelBlock otherButtonBlock:(nullable JXTAlertClickBlock)otherBlock; /** JXTAlertView: 不定数量按钮alert @param title title @param message message @param cancelButtonTitle 取消按钮标题 @param buttonIndexBlock 按钮回调 @param otherButtonTitles 其他按钮标题列表 */ + (void)showAlertViewWithTitle:(nullable NSString *)title message:(nullable NSString *)message cancelButtonTitle:(nullable NSString *)cancelButtonTitle buttonIndexBlock:(nullable JXTAlertClickBlock)buttonIndexBlock otherButtonTitles:(nullable NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION; /** JXTAlertView: 不带按钮自动消失的toast @param title title @param message message @param duration 显示时间 @param dismissCompletion 关闭后回调 */ + (void)showToastViewWithTitle:(nullable NSString *)title message:(nullable NSString *)message duration:(NSTimeInterval)duration dismissCompletion:(nullable JXTAlertClickBlock)dismissCompletion; /** JXTAlertView: 文字HUD @param title title @param message message */ + (void)showTextHUDWithTitle:(nullable NSString *)title message:(nullable NSString *)message; /** JXTAlertView: loadHUD @param title title @param message message */ + (void)showLoadingHUDWithTitle:(nullable NSString *)title message:(nullable NSString *)message; /** JXTAlertView: progressHUD @param title title @param message message */ + (void)showProgressHUDWithTitle:(nullable NSString *)title message:(nullable NSString *)message; /** JXTAlertView: progressHUD,进度条进度值 @param progress 进度值 */ + (void)setHUDProgress:(float)progress; /** JXTAlertView: HUD公用方法,设置成功状态 @param title title @param message message */ + (void)setHUDSuccessStateWithTitle:(nullable NSString *)title message:(nullable NSString *)message; /** JXTAlertView: HUD公用方法,设置失败状态 @param title title @param message message */ + (void)setHUDFailStateWithTitle:(nullable NSString *)title message:(nullable NSString *)message; /** JXTAlertView: HUD公用方法,关闭HUD */ + (void)dismissHUD; @end