GiGaMaskTime/GIGA/Common/JXTAlertManager/AlertView/JXTAlertView.h

302 lines
8.5 KiB
Objective-C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// JXTAlertView.h
// JXTAlertManager
//
// Created by JXT on 2016/12/20.
// Copyright © 2016年 JXT. All rights reserved.
//
#import <UIKit/UIKit.h>
#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: 文字HUDjxt_dismissHUD()执行关闭
*/
void jxt_showTextHUDTitleMessage(NSString * _Nullable title,
NSString * _Nullable message);
/**
* JXTAlertView: 文字HUDjxt_dismissHUD()执行关闭
*/
void jxt_showTextHUDTitle(NSString * _Nullable title);
/**
* JXTAlertView: 文字HUDjxt_dismissHUD()执行关闭
*/
void jxt_showTextHUDMessage(NSString * _Nullable message);
// MARK: 4.loadHUD代码执行关闭
/**
* JXTAlertView: loadHUDjxt_dismissHUD()执行关闭
*/
void jxt_showLoadingHUDTitleMessage(NSString * _Nullable title,
NSString * _Nullable message);
/**
* JXTAlertView: loadHUDjxt_dismissHUD()执行关闭
*/
void jxt_showLoadingHUDTitle(NSString * _Nullable title);
/**
* JXTAlertView: loadHUDjxt_dismissHUD()执行关闭
*/
void jxt_showLoadingHUDMessage(NSString * _Nullable message);
// MARK: 5.ProgressHUD代码执行关闭
/**
* JXTAlertView: ProgressHUDjxt_dismissHUD()执行关闭
*/
void jxt_showProgressHUDTitleMessage(NSString * _Nullable title,
NSString * _Nullable message);
/**
* JXTAlertView: ProgressHUDjxt_dismissHUD()执行关闭
*/
void jxt_showProgressHUDTitle(NSString * _Nullable title);
/**
* JXTAlertView: ProgressHUDjxt_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(void);
/**
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