iOS系统弹框封装 一句代码实现中间和底部弹框

//

//  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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值