iOS系统弹框封装 一句代码实现中间和底部弹框
来源:互联网 发布:喜马拉雅 兼职 知乎 编辑:程序博客网 时间:2024/06/18 16:36
//
// 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 = [UIAlertControlleralertControllerWithTitle:title message:messagepreferredStyle:alertStyle];
[alertControlleraddAction:[UIAlertActionactionWithTitle:cancelTitle.length >0? cancelTitle:@"取消"style:UIAlertActionStyleCancelhandler:^(UIAlertAction *_Nonnull action) {
itemBlock(0);//取消返回0值
}]];
for (NSInteger i =0; i < actionsArr.count; i++) {
[alertControlleraddAction:[UIAlertActionactionWithTitle:actionsArr[i] style:UIAlertActionStyleDefaulthandler:^(UIAlertAction *_Nonnull action) {
itemBlock(i+1);
}]];
}
[controller presentViewController:alertController animated:YEScompletion:nil];
}
@end
- iOS系统弹框封装 一句代码实现中间和底部弹框
- 一句代码搞定 Android 底部弹框
- 封装AlertActionVIew底部弹框
- iOS:一句代码实现文本输入的限制
- iOS封装浅谈-一句代码弹出actionSheet,如何优雅的设计一个ActionSheetManager
- Android仿ios风格底部弹框
- 实现底部的弹出框(官方API实现Android的在屏幕中间)
- 利用JQuery一句代码实现统计点击复选框个数
- 一句代码调用注册通知事件+实现微信弹出/隐藏输入框
- 一句代码实现 HTML5 语音搜索
- 一句代码实现gzip压缩解压缩
- 一句代码实现登录判断操作
- iOS 一句代码轻松实现十六进制颜色(#开头)转RGB颜色
- android中用DialogFragment实现底部弹框
- 炫酷:一句代码实现标题栏、导航栏滑动隐藏。ByeBurger库的使用和实现
- 一句代码实现标题栏、导航栏滑动隐藏。ByeBurger库的使用和实现
- [demo]仿IOS底部弹框效果及Android各类对话框和弹框效果
- 一句代码简单快捷的去掉TableView底部的多余cell线条
- jquery练习8 html()与text()
- 闭包
- 多个活动的结果集 (MARS)
- LINUX中swap与windows中虚拟内存区别
- JS 中 DateTime日期时间及方法函数
- iOS系统弹框封装 一句代码实现中间和底部弹框
- 04基本命令
- JDK1.7.0_80的安装与配置
- CUDA入门2——获取显卡参数
- boost库之socket 非阻塞/缓冲区大小等属性设置
- 使用Python脚本实现360加固后一键V2签名和Walle打出渠道包
- 商城项目分解-登录
- Hadoop集群搭建(HDFS和Yarn集群)
- Java for循环的几种用法