
#import <UIKit/UIKit.h>

typedef void(^SLCustomizeAlertClick)(NSInteger idx);
typedef void (^SLAlertAction) (void);
typedef void (^SLAlertAttrAction) (NSString *scheme);

//NS_ASSUME_NONNULL_BEGIN

@interface SLCustomizeAlert : UIView

@property (nonatomic, assign) BOOL remainOnClick;//点击后消失，默认NO

/// 类方法
/// @param title <#title description#>
/// @param message 内容
/// @param sureBtnTitle 确定按钮
/// @param cancelBtnTitle 取消按钮
/// @param sureBtnAction 回调
/// @param cancelBtnAction 回调
+ (instancetype)showAletrWithTitle:(NSString *)title
                           message:(NSString *)message
                      sureBtnTitle:(NSString *)sureBtnTitle
                    cancelBtnTitle:(NSString *)cancelBtnTitle
                     sureBtnAction:(SLAlertAction)sureBtnAction
                   cancelBtnAction:(SLAlertAction)cancelBtnAction;


/// 对象方法
/// @param title <#title description#>
/// @param message 内容
/// @param sureBtnTitle 确定按钮
/// @param cancelBtnTitle 取消按钮
/// @param sureBtnAction 回调
/// @param cancelBtnAction 回调
- (instancetype)initWithTitle:(NSString *)title
                      message:(NSString *)message
                 sureBtnTitle:(NSString *)sureBtnTitle
               cancelBtnTitle:(NSString *)cancelBtnTitle
                sureBtnAction:(SLAlertAction)sureBtnAction
              cancelBtnAction:(SLAlertAction)cancelBtnAction;

/// 底部弹框
/// @param titles <#titles description#>
/// @param cancelTitle 取消放最后
/// @param buttonIndex 点击回调
+ (void)showBottomAletrWithTitles:(NSArray<NSString *> *)titles
                      cancelTitle:(NSString *)cancelTitle
                      buttonIndex:(void (^)(NSInteger index))buttonIndex;


/// 对象方法
/// @param title <#title description#>
/// @param attributedMsg 富文本内容
/// @param sureBtnTitle 确定按钮
/// @param cancelBtnTitle 取消按钮
/// @param sureBtnAction 回调
/// @param cancelBtnAction 回调
- (instancetype)initWithTitle:(NSString *)title
                attributedMsg:(NSAttributedString *)attributedMsg
                 sureBtnTitle:(NSString *)sureBtnTitle
               cancelBtnTitle:(NSString *)cancelBtnTitle
                sureBtnAction:(SLAlertAction)sureBtnAction
              cancelBtnAction:(SLAlertAction)cancelBtnAction
             attributedAction:(SLAlertAttrAction)attributedAction;
    

/// alertShow VC
/// @param vc <#vc description#>
- (void)alertShowWithViewcontroller:(UIViewController *)vc;

/// alertShow Window
- (void)alertShow;

@end

//NS_ASSUME_NONNULL_END
