文档章节

KYAlertView 主要是支持block块方式的UIAlertView的扩展

kingly09
 kingly09
发布于 2016/11/02 11:07
字数 1053
阅读 17
收藏 0

KYAlertView

A highly customized package of AlertView, strong scalability

gitHub下载: https://github.com/kingly09/KYAlertView

说明

KYAlertView 主要是支持block块方式的UIAlertView的扩展,支持原生的UIAlertView的alertViewStyle的四种样式UIAlertViewStyleDefault,UIAlertViewStyleSecureTextInput,UIAlertViewStylePlainTextInput,UIAlertViewStyleLoginAndPasswordInput,并且封装一个高自定义的UIAlertView,为了解决产品提出的不同场景的弹出层需求。支持富文本的UIAlertView的弹出层

安装

要求

  • Xcode 7 +
  • iOS 7.0 +

手动安装

下载DEMO后,将子文件夹 KYAlertViewLib 拖入到项目中, 导入头文件KYNetwork.h 开始使用.

CocoaPods安装

你可以在 Podfile 中加入下面一行代码来使用 KYAlertView

	pod 'KYAlertView' 

使用 cocoaPods 管理第三方库, 如果电脑没有安装 cocoapods,请先安装 cocoapods。安装方式可参考:[最新的cocoapods安装] (http://blog.sina.com.cn/s/blog_6ff6523d0102x8dq.html)

如何使用

使用Block方式UIAlertView

 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"温馨提示" message:@"登录apple成功" delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles:nil,nil];
    alert.alertViewClickedButtonAtIndexBlock = ^(UIAlertView *alert ,NSUInteger index) {

        if (index == 0) {
            NSLog(@"知道了");
        }
    };
    
    [alert show];

如下图所示:

带输入框(TextField)的UIAlertView

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"登录 iTunes Store " message:@"请输入您的“lixxxx@163.com”的密码" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"好",nil];
    alert.alertViewStyle = UIAlertViewStyleSecureTextInput;
    [[alert textFieldAtIndex:0] setKeyboardType:UIKeyboardTypeNumberPad];
    [[alert textFieldAtIndex:0] setPlaceholder:@"请输入6位数字密码"];
    alert.alertViewClickedButtonAtIndexBlock = ^(UIAlertView *alert ,NSUInteger index) {

        if (index == 0) {

            NSLog(@"取消");

        }else  if (index == 1) {

            NSLog(@"好");

        }
        
    };
    
    [alert show];


如下图所示:

使用otherbuttontitles 数组

 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Apple ID" message:@"lixxxx@163.com" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"查看 Apple ID",@"注销",@"iForgot",@"取消",nil];
    alert.alertViewClickedButtonAtIndexBlock = ^(UIAlertView *alert ,NSUInteger index) {

        if (index == 0) {

            NSLog(@"查看 Apple ID");

        }else  if (index == 1) {

            NSLog(@"注销");

        }else  if (index == 2) {

            NSLog(@"iForgot");

        }else  if (index == 3) {

            NSLog(@"取消");
        }
        
    };
    
    
    [alert show];


如下图所示:

自定义一个带蒙层的UIAlertView

[[KYAlertView sharedInstance] showAlertView:@"领取成功"
                                        message:@"哇,中奖了100万,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了"
                                 subBottonTitle:@"分享好友"
                              cancelButtonTitle:@"立即查看"
                                        handler:^(AlertViewClickBottonType bottonType) {

                                            if (bottonType == AlertViewClickBottonTypeSubBotton) {
                                                NSLog(@"分享好友");
                                            }else if (bottonType == AlertViewClickBottonTypeCancelButton){
                                                NSLog(@"立即查看");
                                            }
                                        }];


如下图所示:

一个subBotton的UIAlertView

    [[KYAlertView sharedInstance] showAlertView:@"领取成功"
                                        message:@"哇,中奖了100万"
                                 subBottonTitle:@"分享好友"
                                        handler:^(AlertViewClickBottonType bottonType) {

                                            if (bottonType == AlertViewClickBottonTypeSubBotton) {
                                                NSLog(@"分享好友");
                                            }
                                        }];


如下图所示:

一个cancelButton的UIAlertView

[[KYAlertView sharedInstance] showAlertView:@"领取失败"
                                        message:@"请联系客服!"
                                 cancelButtonTitle:@"好"
                                        handler:^(AlertViewClickBottonType bottonType) {

                                            if (bottonType == AlertViewClickBottonTypeCancelButton){
                                                NSLog(@"取消");
                                            }
                                        }];


如下图所示:

更多高级功能扩展

设置标题的颜色

 [alertView setTitleLabelTextColor:[UIColor blackColor]];

设置内容的颜色

  [alertView setContentLabelTextColor:[UIColor blueColor]]; 

设置AlertView的背景颜色

   [alertView setAlertViewBackgroundColor:[UIColor yellowColor]];

设置AlertView的背景图片

[alertView setAlertViewBackgroundImage:[UIImage imageNamed:@"bg_woyeyaoyugao"]]; 

设置SubBotton的背景颜色

[alertView setSubBottonBackgroundColor:[UIColor blackColor]]; 

设置SubBotton的文字颜色

[alertView setSubBottonTitleColor:[UIColor whiteColor]];

设置SubBotton的边框颜色

[alertView setSubBottonBorderColor:[UIColor redColor]]; 


设置CancelButton的文字颜色

 [alertView setCancelButtonTitleColor:[UIColor orangeColor]];

设置CancelButto的背景颜色

 [alertView setCancelButtonBackgroundColor:[UIColor whiteColor]];

设置CancelButton的边框颜色

[alertView setCancelButtonBorderColor:[UIColor blackColor]];

demo效果图如下:

支持富文本的UIAlertView的弹出层

KYAlertView *alertView = [KYAlertView sharedInstance];

NSString *messageStr = @"哇,变色了 太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了哇,太好了";
NSMutableAttributedString *attstr = [[NSMutableAttributedString alloc]initWithString:messageStr];
NSRange rangeStr = [messageStr rangeOfString:[NSString stringWithFormat:@"%@",@"变色了"]];
[attstr addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:rangeStr];

NSRange range02 = [messageStr rangeOfString:[NSString stringWithFormat:@"%@",@"好"]];
[attstr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:20] range:range02];

[alertView setMessageWithAttributedText:attstr];

联系与建议反馈

weibo: http://weibo.com/balenn

QQ: 362108564

如果有任何你觉得不对的地方,或有更好的建议,以上联系都可以联系我。 十分感谢!

鼓励

它若不慎给您帮助,请不吝啬给它点一个star,是对它的最好支持,非常感谢!🙏

LICENSE

KYAlertView 被许可在 MIT 协议下使用。查阅 LICENSE 文件来获得更多信息。

© 著作权归作者所有

kingly09
粉丝 4
博文 20
码字总数 30312
作品 0
深圳
iOS工程师
私信 提问
加载中

评论(1)

小码爱大牛
小码爱大牛
你好,我是深圳一家以家居安防为核心的智能家居公司的HR在招聘一位iOS开发架构师兼leader。不知道您自己或者身边同事朋友有没有在看工作机会的呢?如果感兴趣可以发简历到3288771685@qq.com或者加QQ。
BlocksKit初见:一个支持将delegate转换成block的Cocoa库

简介 项目主页: https://github.com/zwaldowski/BlocksKit BlocksKit 是一个开源的框架,对 Cocoa 进行了扩展,将许多需要通过 delegate 调用的方法转换成了 block。在很多情况下,blocks 比...

ios122
2015/12/17
583
0
Objective-C Runtime之着魔的UIAlertView

原文出处: ian博客(@ianisme ) 传统的UIAlertView: 在一个类中有多个UIAlertView,不同的UIAlertView对应不同的事件,我们使用的传统方法如下: Objective-C 1 2 3 4 5 6 7 8 9 10 11 12...

刘星石
2016/04/14
17
0
开源中国iOS客户端学习——(六)网络连接检测

开源中国iOS客户端基于网络同步数据,从而达到与网页看到同样数据效果,所以在启动程序的时候需要检查网络;这也是每一个联网应用启动的第一步,如果联网应用没有检查网络,苹果公司将不予以...

青云_K
2013/01/10
493
0
ext3与ext4文件系统的区别

很长一段时间以来,ext3是很多Linux发行版默认的文件系统,现在ext4已经发布,并且已经有发行版开始使用ext4作为默认的文件系统了(其实最初的时候ext4是作为ext3的扩展,但是为了保证ext3的...

数据恢复v
2018/07/02
0
0
iOS扩展机制category与associative

category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法;associative,可以通过它来扩展属性;在iOS开发中,可能category比较常见,相对的assoc...

Megan_zhou
2013/12/03
664
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部