//
// ZFSAlertView.h
// test
//
// Created by HandsomeC on 2017/12/11.
// Copyright © 2017年 赵发生. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger,ZFSAlertViewStyle) {
ZFSAlertViewAlert = 0,//中间弹框
ZFSAlertViewSheet,//底部弹框
};
typedef void (^clickBlock)(NSInteger itemIndex);
@interface ZFSAlertView : UIView
/*
调用的时候回调实在闭包里面,请注意避免循环引用
*/
/**
弹框封装
@param title 标题
@param message 信息
@param cancelTitle 取消按钮文字
@param actionsArr 按钮数组
@param style 弹框类型(中间或者是底部)
@param controller 弹出视图的父视图
@param itemBlock 回调
*/
+ (void)AlertViewWithTitle:(NSString *)title message:(NSString *)message cancelTitle:(NSString *)cancelTitle acitons:(NSArray *)actionsArr style:(ZFSAlertViewStyle)style inView:(UIViewController*)controller itemblock:(clickBlock)itemBlock;
@end
//
// ZFSAlertView.m
// test
//
// Created by HandsomeC on 2017/12/11.
// Copyright © 2017年 赵发生. All rights reserved.
//
#import "ZFSAlertView.h"
@implementation ZFSAlertView
/*
回调为零默认为取消按钮
*/
+ (void)AlertViewWithTitle:(NSString *)title message:(NSString *)message cancelTitle:(NSString *)cancelTitle acitons:(NSArray *)actionsArr style:(ZFSAlertViewStyle)style inView:(UIViewController*)controller itemblock:(clickBlock)itemBlock{
UIAlertControllerStyle alertStyle;
if (!style) {
alertStyle = UIAlertControllerStyleAlert;
}else{
alertStyle = UIAlertControllerStyleActionSheet;
}
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:alertStyle];
[alertController addAction:[UIAlertAction actionWithTitle:cancelTitle.length > 0? cancelTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
itemBlock(0);//取消返回0值
}]];
for (NSInteger i = 0; i < actionsArr.count; i++) {
[alertController addAction:[UIAlertAction actionWithTitle:actionsArr[i] style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
itemBlock(i+1);
}]];
}
[controller presentViewController:alertController animated:YES completion:nil];
}
@end