葡京网上娱乐场iOS 更加文雅轻便的UIAlertView/UIAlertController封装使用

前言:

前面做过一样模仿关于UIAlertView/UIAlertController的混合封装(旧版封装链接:iOS
(封装)一句子话调用系统的alertView和alertController

怪是将alertView和alertController做了本子适配封装于合的,提供了变参和数组两种植方法,不过本总的来说,虽然是“一句子话”调用,但连无是异常优雅的不二法门。

这次,改变了方案,将UIAlertView和UIAlertController分开进行了拍卖,整体代码也轻量了多。
新版的代码和Demo见GitHub:

JXTAlertManager

  • 基于UIAlertView封装的JXTAlertView,这个是以事先写Demo时作的同一仿照快捷使用alertView的工具抽离整理出来的,并提供了C函数直接调用,像这样:
    jxt_showAlertTitle(@"简易调试使用alert,单按钮,标题默认为“确定”");
    纵使得一直展示有一个alertView。
  • 基于UIAlertController封装的JXTAlertController,支持iOS8暨以上。调用方式吧UIViewController的恢弘分类方法,支持下链式语法的点子配置alert的按钮及体制,相对于变参或者频繁组,更加简洁。

JXTAlertManager大体结构

 

1. JXTAlertView 方便调试工具

因此称为快捷调剂工具,就是为及时套代码是前写Demo时打出来的。所以,如果无是设适配iOS7跟以下版本的话,这套代码还是建议就所以当平常Demo测试。也用,并不曾针对性UIActionSheet再展开打包,说白了是盖累……
平日形容有Demo代码时,总会就此到alert、toast、HUD这些工具,如果没一样法简便的家伙,会烦大多,所以就算起轻量便捷角度出发,基于UIAlertView,封装实现了alert、toast、HUD这些常用工具。

JXTAlertView大致效果演示

MyEclipse快捷键设置

分类: JAVA2011-06-30 09:35 11255人阅读 评论(2) 收藏 举报

myeclipseeclipsetriggersmicrosoftjavabinding

1、提示键配置

 

 

 

      一般默认情况下,Eclipse ,MyEclipse 的代码提示效果是较Microsoft
Visual Studio的不等多底
,主要是Eclipse
,MyEclipse本身有那么些选择是默认关闭的,要开发者自己失去手动配置。如果出
哟未亮堂的话,就未知道Eclipse ,MyEclipse的代码提示意义雷同会如Microsoft
Visual Studio的
代码提 示功能雷同强大。
      先选出个简单的事例说明问题所在,例如当Eclipse
,MyEclipse代码里面,打个foreach,switch等
这些,是无能为力获取代码提示的(不信教自己试),其他的哪怕再毫不说了,而以Microsoft
Visual
Studio 里面是取充分友好的代码提示的。实际上,Eclipse
,MyEclipse代码里面的代码提示作用
默认的形似 是接触“.”,一般是发生矣碰“.”,才见面来代码提示。
        原理:“Auto Activation triggers for
java”这个选项就是负触发代码提示的底挑选项,把“.”
 改成为“.abcdefghijklmnopqrstuvwxyz(,”的意,就是借助遇到26单字母和.,(这些号就接触
代码提 示功能了。增强Eclipse ,MyEclipse
的代码提示作用,具体哪些来布局?

 

 

下开始说步骤:

  1. 打开MyEclipse ,然后“window”→“Preferences”
  2. 选择“java”,展开,“Editor”,选择“Content Assist”。
  3. 选料“Content
    Assist”,然后视右边,右边的“Auto-Activation”下面的“Auto 
    Activation triggers for
    java”这个选项。其实就算是赖触发代码提示的哪怕是“.”这个符号.
  4. “Auto Activation triggers for
    java”这个选项,在“.”后加abc字母,方便后面的探寻修改。然后“apply”,点击“OK”。
    5.
    然后,任意选择个类别“File”→“Export”,在弹出的窗口被选取“Perferences”,点击“下一致步”。
    6.
    精选导出文件路径,本人导出到桌面,输入“test”作为文件称,点击“保存”。
  5. 于桌面找到刚在保存的文本“test.epf”,右键选择“用记事本打开”。
  6. 可以看出多配置MyEclipse 的信
  7. 比如“ctrl + F”快捷键,输入“.abc”,点击“查找下一个”。
  8. 搜寻到“.abc”的布局信息.
    11.
    把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,保存,关闭“test.epf”。
  9. 回来MyEclipse
    界面,“File”→“Import”,在弹出的窗口中摘“Perferences”,点

    “下一样步”,选择刚刚当已经修改的“test.epf”文件,点击“打开”,点击“Finish”。该步骤
    跟点 的导出步骤类似。
    13.
    最后当是开展代码测试了。随便新建一个工,新建一个近似。在代码输入switch,foreach等
    进展
    测试。你立即会发现,果然有了提示,而且无论是敲哪个假名都见面来多相关的唤起了,很流
    畅,很方便。
    小结:“Auto Activation triggers for
    java”这个选项就是乘触发代码提示的的精选项,把“.”改

    “.abcdefghijklmnopqrstuvwxyz(,”的意思,就是凭遇到26个假名和.这些标记就触发代码提示作用了。

末:自动提醒弹来底流年最好好改成为100毫秒以下,不然你都成功了,自动提示才弹出来。

 

2、.MyEclipse里面如何用快捷键打有System.out.println():

 

      
如果你打印Sy字符时没有提醒称吧sysout的命令名,你可以起定义要打印的字符串和指令名。类似(可key—value)可以在
Windows->Preferences->Java->Editor->Templates->new
这里虽好由定义了。

3.提示快捷键设置:

 

     
打开Window->Preference->Generate->Keys,出现一个大之对话框,”Alt+/”对应的指令名称是:”Content
Assist”,找到该条命令,单击选中它。这时在窗口下面的Binding 和 When
会出现活动显示该令的信息,删掉Binding中的信,然后按照下键盘Alt+/,这个时候Binding就会自动显示Alt+/的快捷键,然后
when窗口中精选Editing Java Source ,最后点击OK。

 

4.唤起背景:

 

window–preference–java–editor-completion proposals Background
颜色推荐85,90,205

 

5、关键字配置不同之水彩

 

 

 

修改类名,接口名等因为不同颜色高亮的

  1. 打开MyEclipse ,然后“window”→“Preferences”.
    2.足以如此安排在“java”→“enditor”→ “syntax coloring”.
    3.右手边进行“java”→“classes”,勾上“Enable”这个选项,选择好好的颜色即可。
    本还发出其他相关的颜色配置。其实,在“Preferences”这个事物,有很多方可安排的
    东西,使得
    MyEclipse 优化的,具体的将每个人因自己个人喜好好去安排了。

 

 

6、调整Myeclipse中代码的示大小

window->preferences->general->apperance->colors and
fonts->basic->text->fonts

接下来点击change 就好转移了!

 

7、设置MyEclipse编辑窗口背景色

编排窗口右键单击——》Preferences——》General加号——》Editors加号——》点Text
Editors字样——》右下窗口选Backgroud color,
右侧边点掉System Default按钮,点Color右边的颜色框,选择颜色OK

 

8、常见快捷键

Eclipse
的编纂功能很强,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中犹如
生有跟编制相关的快捷键。
   1. 【ALT+/】
  
此赶紧捷键为用户编辑的好下手,能啊用户提供内容的鼎力相助,不要也记不全方法以及特性名称悄然,
当记不全类、方法及性之讳时,多体会一下【ALT+/】快捷键带来的补益吧。
   2. 【Ctrl+O】
  
显示类中艺术以及性能的纲要,能很快定位类的法与总体性,在查找Bug时老实惠。
   3. 【Ctrl+/】
  
快速补充加注,能啊光标所在行或所选定行速补充加注或收回注释,在调试的时候也许总会用
如果诠释一些事物或吊销注释,现在吓了,不需每行进行再的注解。
   4. 【Ctrl+D】
  
删除时施行,这吗是笔者之最爱之一,不用为除去一行要据那累的删除键。
   5. 【Ctrl+M】
  
窗口最大化和回复,用户以窗口中进行操作时,总会以为眼前窗口小(尤其以编制代码时),现
在好了,试试【Ctrl+M】快捷键。
   查看和定位快捷键
  
在程序中,迅速定位代码的职,快速找到Bug的四野,是蛮不便于的事,Eclipse提供了精

的查找功能,可以采用如下的快捷键帮助完成搜索定位的干活。
   1. 【Ctrl+K】、【Ctrl++Shift+K】
   快速往下与提高查找选定的内容,从此不再用因此鼠标单击查找对话框了。
   2. 【Ctrl+Shift+T】
  
查找工作空间(Workspace)构建路径中的但是找到Java类文件,不要啊寻不交类似设惨痛,而且可

使用“*”、“?”等通配符。
   3. 【Ctrl+Shift+R】
  
和【Ctrl+Shift+T】对应,查找工作空间(Workspace)中的有文件(包括Java文件),也得

利用通配符。
   4. 【Ctrl+Shift+G】
  
查找类、方法和性质的援。这是一个特别实用的快捷键,例如要修改引用某个方法的代码,可

盖通过【Ctrl+Shift+G】快捷键迅速定位有所援这方法的职位。
   5. 【Ctrl+Shift+O】
高效生成import,当由网上拷贝一段落先后后,不知晓什么样import进所调用的近乎,试试【Ctrl+Shift+O

】快捷键,一定会生出惊喜。
   6. 【Ctrl+Shift+F】
  
格式化代码,书写格式规范之代码是各一个程序员的必修之课,当看见某段代码极不美丽时,选

定后按照【Ctrl+Shift+F】快捷键可以格式化这段代码,如果未选定代码则默认格式化当前文件(Java

文件)。
   7. 【ALT+Shift+W】
  
查找当前文件所在项目蒙之路径,可以快稳定浏览器视图的职,如果想找某个文件所在的

包时,此快捷键非常管用(特别在比较深之类面临)。
   8. 【Ctrl+L】
   定位到目前编辑器的某一样实践,对非Java文件也有效。
   9. 【Alt+←】、【Alt+→】
  
后低落历史记录和进化历史记录,在跟代码时坏有因此,用户或寻了几个发关系的地方,但

或是记不晓得了,可以由此这半个快捷键定位查找的逐一。
   10. 【F3】
霎时稳定光标位置的某某类、方法及属性。
   11. 【F4】
   显示类的继续关系,并打开类继承视图。
   调试快捷键
   Eclipse中产生如下一些暨运行调节相关的快捷键。
   1. 【Ctrl+Shift+B】:在此时此刻行设置断点或吊销设置的断点。
   2. 【F11】:调试最后一次执行之次。
   3. 【Ctrl+F11】:运行最后一浅实施的次序。
   4.
【F5】:跟踪及方法吃,当程序执行到某艺术时,可以按【F5】键跟踪及方式吃。
   5. 【F6】:单步执行顺序。
   6. 【F7】:执行完毕方法,返回到调用此方式的晚同样久语句。
   7. 【F8】:继续执行,到下一个断点或程序结束。
   常用编辑器快捷键
  
通常文本编辑器都提供了有暨编辑相关的快捷键,在Eclipse中呢得以透过这些快捷键进行文本

编辑。
   1. 【Ctrl+C】:复制。
   2. 【Ctrl+X】:剪切。
   3. 【Ctrl+V】:粘贴。
   4. 【Ctrl+S】:保存文件。
   5. 【Ctrl+Z】:撤销。
   6. 【Ctrl+Y】:重复。
   7. 【Ctrl+F】:查找。
   其他快捷键
  
Eclipse中还有众多赶快捷键,无法一一列举,用户可通过助文档找到它们的采取方法,另外还

起几乎个常因此底快捷键如下。
   1. 【Ctrl+F6】:切换至下一个编辑器。
   2. 【Ctrl+Shift+F6】:切换至齐一个编辑器。
   3. 【Ctrl+F7】:切换至下一个视图。
   4. 【Ctrl+Shift+F7】:切换到直达一个视图。
   5. 【Ctrl+F8】:切换到下一个透视图。
   6. 【Ctrl+Shift+F8】:切换到上一个透视图。
  
Eclipse中争先捷键比较多,可以由此扶持文档找到有快捷键的施用,但若是控有快捷键的行使

大凡不容许的,也远非必要,如果花点时间熟悉本节列举的快捷键,必将会事半功倍

  1. edit->content Assist – >   add       Alt+/   代码关联
  2. Window -> Next Editor -> add     Ctrl+Tab 切换窗口
  3. Run/Debug Toggle Line Breakpoint -> add Ctrl+` 在调节的时刻
    增删断点
  4. Source-> Surround with try/catch Block -> Ctrl+Shift+v  
    增加try catch 框框
  5. Source -> Generate Getters and Setters -> Ctrl+Shift+. 增加get
    set 方法
    ———–有用的快捷键———–
    Alt+/
    代码助手就有代码的插(但貌似和输入法有冲突,可以修改输入法的热键,也堪暂用

Alt+/来代替)
Ctrl+1:光标停于某变量上,按Ctrl+1键,可以提供便捷重构方案。选中若干执行,按Ctrl+1键可拿之

段代码放入for、while、if、do或try等代码块被。
双击左括哀号(小括号、中括号、大括哀号),将择充满号内之具备情节。
Alt+Enter 显示当前挑选资源(工程,or 文件 or文件)的特性
———–Ctrl 系列———–
Ctrl+K:将光标停留在变量上,按Ctrl+K键可以查找到下一个同一的变量
Ctrl+Shift+K: 和Ctrl+K查找的势头相反
Ctrl+E 快速显示当前Editer的下拉列表(如果手上页面没有亮的之所以黑体表示)
Ctrl+Shift+E
显示管理即开拓的备的View的管理器(可以选取关闭,激活等操作)
Ctrl+Q 定位及最后编辑的地方
Ctrl+L 定位于有行 (对于程序超过100底人数就算来福音了)
Ctrl+M 最大化当前之Edit或View (再比如则反的)
Ctrl+/ 注释当前实施,再遵照则取消注释
Ctrl+T 快速显示当前相近的存续结构
Ctrl+Shift-T: 打开类型(Open
type)。如果你莫是有意磨洋工,还是忘记通过源码树(source

 

tree)打开的方法吧。
Ctrl+O:在代码中开拓类似大纲视图的小窗口
Ctrl+鼠标停留:可以显示类和办法的源码
Ctrl+H:打开搜索窗口
Ctrl+/(小键盘) 折叠当前看似中之具备代码
Ctrl+×(小键盘) 展开当前仿佛中之持有代码
———–Ctrl+Shift 系列———–
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+X 把目前当选的文本全部变味小写
Ctrl+Shift+Y 将当下相中的文件全部化为小写

Ctrl+Shift+O:快速地导入import

Ctrl+Shift+R:打开资源 open Resource

Ctrl+Shift+/ 加上段注释/**/
Ctrl+Shift+/ 取消段注释/**/

shift+Alt+Jt 给艺术勾勒文档注释
———–F快捷键 系列———–
F3:打开声明该引用的文件
F4:打开类型层次结构
F5:单步跳入
F6:单步跳了
F7:单步跳出
F8:继续,如果后面没有断点,程序用运行了
———– 行编辑用———–
Ctrl+D: 删除时履行
Ctrl+Alt+↓ 复制当前执行至下一行(复制增加)
Ctrl+Alt+↑ 复制当前实践到上一行(复制增加)
Alt+↓ 时实行及底下一行交互位置(特别实用,可以望去先剪切,再贴贴了)
Alt+↑ 时施行和点一行交互位置(同上)
Shift+Enter
在时行之下一行插入空行(这时鼠标可以于现阶段推行之管一职位,不必然是最后)
Ctrl+Shift+Enter 于当前施行插入空行(原理同齐久)
———–不常用的———–
Alt+← 前一个辑的页面
Alt+→ 下一个编辑的页面(当然是对准地方那漫长来说了)
Ctrl+Shift+S:保存全部
Ctrl+W 关闭时Editer
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+G: 在workspace中追寻引用
Ctrl+Shift+P 定位及对的匹配符(譬如{})
(从前面定位后时,光标要当匹配符里面,后面到面前,

则反之)
———–不明白 ———–
Ctrl+J
正往增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供便捷配合定位及某单词,如

果不其然没有,则在stutes
line中显得没有找到了,查一个单词时,特别实用,这个效应Idea两年前便时有发生矣)
Ctrl+Shift+J 反往增量查找(和上长达相同,只不过是从晚往前方翻)

原稿地址:http://blog.csdn.net/caozhongyan/article/details/6576362

1.1.飞快使用alertView

而只是简短的一个提示,可以如此使(这里仅是一个演示,详细用法见源码):
jxt_showAlertTitle(@"简易调试使用alert,单按钮,标题默认为“确定”");
那个落实是依据:

[JXTAlertView showAlertViewWithTitle:title 
                             message:message 
                   cancelButtonTitle:cancelButtonTitle 
                    otherButtonTitle:otherButtonTitle
                   cancelButtonBlock:cancelBlock 
                    otherButtonBlock:otherBlock];

立马是常用之一定量只里头的按钮的alertView,也足以如此用:

jxt_showAlertTwoButton(@"title", @"message", @"cancel", ^(NSInteger buttonIndex) {
    NSLog(@"cancel");
}, @"other", ^(NSInteger buttonIndex) {
    NSLog(@"other");
});

对被复杂的大多按钮的alertView,还是使用变参方式,按钮响应,根据添加的按钮标题的index号依序区分:

[JXTAlertView showAlertViewWithTitle:@"title"
                             message:@"message"
                   cancelButtonTitle:@"cancel"
                    buttonIndexBlock:^(NSInteger buttonIndex) {
    if (buttonIndex == 0) {
        NSLog(@"cancel");
    }
    else if (buttonIndex == 1) {
        NSLog(@"按钮1");
    }
    else if (buttonIndex == 2) {
        NSLog(@"按钮2");
    }
    else if (buttonIndex == 3) {
        NSLog(@"按钮3");
    }
    else if (buttonIndex == 4) {
        NSLog(@"按钮4");
    }
    else if (buttonIndex == 5) {
        NSLog(@"按钮5");
    }
} otherButtonTitles:@"按钮1", @"按钮2", @"按钮3", @"按钮4", @"按钮5", nil];

1.2.简单的toast

此处的toast提示,有别于传统意义上之toast,因为该是基于alertView实现的,是一个没有按钮的alertView。可自定义展示延时岁月,支持关闭回调的布置。

[JXTAlertView showToastViewWithTitle:@"title"
                             message:@"message"
                            duration:2
                   dismissCompletion:^(NSInteger buttonIndex) {
    NSLog(@"关闭");
}];

1.3.三种HUD的实现

此处的HUD区别为toast之远在当给,其倒闭时可控,并无是只的一个延时来得。
老三栽HUD是凭只是的文字型、带风火轮(菊花)的加载窗、带进度长长的之加载窗。
后两者用KVC的章程访了alertView的村办属性accessoryView实现,这样做或无尽特别问题,不过要不建议线达支付以,而且用这种艺术访私有属性本来就是不顶安全的,一旦key(私有属性名)改变了,不开容错处理,会崩溃,源码实现着做了迟早之容错,但是,一旦对许key变化,也即招致对应功能失效了。

  • 演示代码(C函数方式):

jxt_showLoadingHUDTitleMessage(@"title", @"message");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    jxt_dismissHUD();
});

HUD还有相应的简便的亮加载成功失败状态的法,以及基础代谢进度长进度值的计,详情见Demo。

2. JXTAlertController(iOS8)(链式语法的“隐患”)

JXTAlertController是因系统的UIAlertController封装的,因此也不得不支持iOS8和以上系版本。
虽然源码中之JXTAlertManagerHeader.h开了一个版适配,但是,其含义更多在提示,很可能用出错,所以,如果只要适配iOS7,对许方法或者要活动适配。
下面都以alert举例,actionSheet同理。

JXTAlertController大致效果演示

2.1.构造说明

/**
 JXTAlertController: show-alert(iOS8)

 @param title             title
 @param message           message
 @param appearanceProcess alert配置过程
 @param actionBlock       alert点击响应回调
 */
- (void)jxt_showAlertWithTitle:(nullable NSString *)title
                       message:(nullable NSString *)message
             appearanceProcess:(JXTAlertAppearanceProcess)appearanceProcess
                  actionsBlock:(nullable JXTAlertActionBlock)actionBlock NS_AVAILABLE_IOS(8_0);

上述措施是针对性UIViewController做的归类扩展,详见源码。
否就算是于某VC中采用时,可一直用self指南针调用。
JXTAlertAppearanceProcess凡是部署块,JXTAlertActionBlock凡按钮响应回调块。

2.2.链式语法添加按钮

[self jxt_showActionSheetWithTitle:@"title"
                           message:@"message"
                 appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
    alertMaker.
    addActionCancelTitle(@"cancel").
    addActionDestructiveTitle(@"按钮1").
    addActionDefaultTitle(@"按钮2").
    addActionDefaultTitle(@"按钮3").
    addActionDestructiveTitle(@"按钮4");
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {

    if ([action.title isEqualToString:@"cancel"]) {
        NSLog(@"cancel");
    }
    else if ([action.title isEqualToString:@"按钮1"]) {
        NSLog(@"按钮1");
    }
    else if ([action.title isEqualToString:@"按钮2"]) {
        NSLog(@"按钮2");
    }
    else if ([action.title isEqualToString:@"按钮3"]) {
        NSLog(@"按钮3");
    }
    else if ([action.title isEqualToString:@"按钮4"]) {
        NSLog(@"按钮4");
    }
}];

appearanceProcess配备块被,alertMaker是当前alertController对象,addActionCancelTitle(@"cancel")大凡添加一个按钮,其当效于:

[alertController addAction:[UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

}]];

此地引入了简单的链式语法,可以连续上加系统支持的三类action按钮,当然UIAlertActionStyleCancel斯样式的action只能上加同不良。这样好大大简化代码。

actionsBlock大凡action按钮响应回调,可以因index区分响应,index根据实施add的语法链从0依程序增加,cancel类型的action布局位置是永恒的,和增长各个无关,但彼index与增长依次有关。
于复杂或者特殊之alertController,也可因action.title或者action区分响应。

2.3.链式语法的“隐患”

用过Masonry本条库房底,应该都指向链式语法不见面尽陌生。链式语法可以教代码简化且逻辑清晰化。但是,其为发出必然的“隐患”存在。
Masonry应是因此底顶多之一个机关布局的老三着库,类似的还有SDAutoLayout(这里只是比喻,同样的老三正还时有发生许多,这个当是除了Masonry他,用之相对多片底一个)这样的,同样的链式语法,后者似乎尤为简洁优雅。那怎么大名鼎鼎的Masonry切莫这样干吧?我怀念是以“安全”。

SDAutoLayout的Demo做一个试:

view为nil导致的垮台

这边将view0置否nil,之后运行,程序直接倒了。。。这看似于实践一个勿赋值的空block。
有人也许会见当这么的试验没有意义,为nil了干嘛还要布局也?其实这是作者前阵子在包一个链式库时遇到的题目:实际运用开发中,情况而复杂很多,有些view是动态增长的,甚至是根据接口数据动态创建的,如果当处理及时类代码逻辑中不慎,就见面促成上述问题,给莫设有的view进行布局,直接导致程序崩溃。。。
骨子里就为是代码书写规范之问题,针对当下看似动态view,在拍卖时,本就应当加上if准判断的,不过有时候容易忽略,或者他人接手相关代码时,也爱忽略。如果就此Masonry的丘配置布局,就未会见来这类问题,因为这种情况,对于Masonry那种写法,就是一个空指针执行一个方式,其结果虽是休实行,而例如SDAutoLayout及时类的,不作判空处理,就见面造成程序崩溃。这里越要专注。

2.4.其他安排

本着alert上的输入框,保持系统的增长方式,示例如下:

[self jxt_showAlertWithTitle:@"title"
                     message:@"message"
           appearanceProcess:^(JXTAlertController * _Nonnull alertMaker) {
    alertMaker.
    addActionDestructiveTitle(@"获取输入框1").
    addActionDestructiveTitle(@"获取输入框2");

    [alertMaker setAlertDidShown:^{
        [self logMsg:@"alertDidShown"];//不用担心循环引用
    }];
    alertMaker.alertDidDismiss = ^{
        [self logMsg:@"alertDidDismiss"];
    };

    [alertMaker addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
        textField.placeholder = @"输入框1-请输入";
    }];
    [alertMaker addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
        textField.placeholder = @"输入框2-请输入";
    }];
} actionsBlock:^(NSInteger buttonIndex, UIAlertAction * _Nonnull action, JXTAlertController * _Nonnull alertSelf) {
    if (buttonIndex == 0) {
        UITextField *textField = alertSelf.textFields.firstObject;
        [self logMsg:textField.text];//不用担心循环引用
    }
    else if (buttonIndex == 1) {
        UITextField *textField = alertSelf.textFields.lastObject;
        [self logMsg:textField.text];
    }
}];

对于alert展示与关的回调,同样支撑以block的方法部署。
如果appearanceProcess片不开展任何配置操作,即无论按钮的alert,同样默认为toast模式处理。可由此安装toastStyleDuration性能,配置toast展示延迟时间。

2.5.移alertController的字体颜色

足由此KVC的计访问alertController的私家属性,从而进行修改对应的书体的水彩,甚至字体。
对于UIAlertAction,可以据此底的不二法门修改字体颜色:
[alertAction setValue:[UIColor grayColor] forKey:@"titleTextColor"];

修改UIAlertAction字体颜色之效益

不过就算如前说之,个人并无推荐这类方式,所以源码中莫供相关的主意。
要生相应的不同寻常需求,总体来说,还是从定义alert视图比较灵活,网上有关的开源库也产生不少可直接利用,不必总是纠结于系统的落实方式。

末尾,欢迎使用JXTAlertManager,如果撞任何问题,请即联系作者。

参考文章:
1.iOS更改UIActionController弹出书的体裁
2.UIAlertController
简单修改title以及按钮的书颜色
3.How to add subview inside UIAlertView for iOS
7?
4.UIAlertView addSubview in
iOS7
5.iOS
UIAlertView中UIActivityindicatorView风火轮提示加载等待

·转载请宣示作者、出处·