对话框视图UIAlertView,上拉菜单UIActionSheet,以及9.0之后完全取代他们的的UIAlertController

原创 2015年11月21日 20:42:07

我们经常在通关游戏,或者提示信息的时候看到屏幕中央直接弹出个视图,其实这是一种对话框视图,通过UIAlertView可以实现很多更灵活的功能

下面是初始化和显示一个带有取消和确定的对话框视图



按住command + 左键 点击UIAlertView,我们会在它的声明里看到有一个alertViewStyle这个属性,这是一个枚举,通过更改,我们可以实现文字,密码,登陆框的效果

文字


密码


登陆框


当然,我们还可以给每一个button添加一个点击事件,比如点击确定,实现页面跳转等其他功能.首先这需要先签订一个协议UIAlertViewDelegate,然后使用这个方法 


每个按钮都有一个下标,cancel为0,otherButton依次增加,为了方便就直接演示打印输出了.....


在视图控制器中,我们还会用到一个上拉菜单视图,创建上拉菜单的形式和对话框类似.




同样的,我们也可以为每个按钮添加响应事件,首先签订UIActionSheetDelegate协议


这里要记住,destructiveButton的下标为0,因为《iOS 用户界面指南》要求所有的“毁坏”样式按钮都必须排名第一,其次是otherButton,最后才是cancelButton

前面的对话框视图UIAlertView和上拉菜单UIActionSheet能实现各种非常灵活的功能,但是,苹果却在iOS 9 之后把他们两弃用了..弃用了...弃用了...(重要的事情说3遍),虽然他们还是可以在XCODE7 中强制使用,但不管怎么说,苹果要求我们干啥,我们还是得干啥.SO.......苹果又在iOS 8的时候推出了UIAlertController(现在已经完全取代前两者了).

其实UIAlertController在功能上和UIViewAlert以及UIActionSheet是相同的,UIAlertController以一种模块化替换的方式来代替这两货的功能和作用,是使用对话框还是使用上拉菜单,这取决于你在设置的时候选取怎样的首选样式.


在苹果的官方文档中可以直接看到这段示例代码,在preferredStyle后面就是你想让它以对话框,还是上拉菜单显示,有UIAlertControllerStyleActionSheet 和 UIAlertControllerStyleAlert

两种,同创建UIAlertView和UIActionSheet相比,我们不需要在添加代理,也不需要在初始化中指定按钮.

而通过UIAlertAction的实例,我们可以将想要的动作按钮添加到控制器上,UIAlertAction由标题字符串,样式以及当用户选中该动作是运行的代码块组成.通过UIAlertActionStyle,可以选择三种动作样式: 常规(default)   取消(cancel) 以及警示 (destructive)




按钮显示的次序,取决于它们添加到对话框控制器上的次序,一般来说,根据苹果官方指定的<iOS用户界面指南>,在拥有两个按钮的对话框中,你应当将取消按钮放在左边(PS:我这里显示的是上拉菜单的.....懒得改了..).   同时,有一点要注意,取消按钮是唯一的,如果添加了第二个取消按钮,那么将会这样..



当然,我们也可以在每一个按钮的BLOCK中添加响应事件,实现自己需要的功能.......

UIAlertController中还有很多的功能供我们学习,挖掘,警示对话框,文本对话框,如何在输入多少字数的字符的情况下才激活按钮.......这些还需要以后不断学习,思考大笑,我这只是简单说了一下如何创建基本的视图,后面的东西还有很多.........

相关文章推荐

android自定义实现抽屉SlidingDrawer的功能

最近项目中需要实现上拉功能,首先想到的就是Android本身自带的抽屉SlidingDrawer,最后也实现了不过,出现的问题就是设置背景色问题,handler和content是两个不同的部分,这就造...

为了更高效的开发代码,这里列出了一些webstorm的快捷键和zencoding

1、webstorm快捷键: IntelliJ-Idea 的快捷键 Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*…*/ ) Sh...

UIAlertController的使用(ios9.0后代替UIAlertView与UIActionSheet)

UIAlertController是用来代替之前我们使用的UIAlertView和UIActionSheet,这次的改进总体来讲,感觉思路更清晰简洁了,使用起来也是颇为顺手,下面不多说老样子上代码...

iOS UIAlertController 弹框 (ios 9.0 后代替了UIAlertView弹框 和 UIActionSheet下弹框)

UIALertController 弹框 代替UIAlertView 和 UIActionSheet 在IOS 9.0 后 苹果官方宣布不再或不推荐使用UIAlertView 和 UIActionSh...

IOS UIAlertController 弹框 (ios 9.0 后代替了UIAlertView弹框 和 UIActionSheet下弹框)

正在IOS 9.0 后 苹果民圆宣告没有再或没有推举应用UIAlertView 战 UIActionSheet 由UIAlertController举行取代二者 用操纵器将二者开两为一 很简略 轻易 ...

iOS8 UIAlertController 创建UIAlertView以及UIActionSheet

最近发现在iOS8中UIActionSheet已经不支持了,所以研究了一下UIAlertController 如果有不对的地方,希望大家多多指教,不废话了,直接上代码。。。方法 + (instan...

iOS8 UIAlertView 和 UIActionSheet 的新用法 UIAlertController详解

添加了新的类 UIAlertController 和 UIAlertAction 来取代曾经的 UIAlertView 和 UIActionSheet,感觉警告窗口的结构更容易理解了,使用起来也更简便...
  • sharmir
  • sharmir
  • 2016年07月30日 11:29
  • 184

iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)

iOS8推出了几个新的“controller”,主要是把类似之前的UIAlertView变成了UIAlertController,这不经意的改变,貌似把我之前理解的“controller”一下子推翻了...

iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet)

iOS8推出了几个新的“controller”,主要是把类似之前的UIAlertView变成了UIAlertController,这不经意的改变,貌似把我之前理解的“controller”一下子推翻了...

Swift基础(二十二)UIAlertView,UIActionSheet,UIAlertController

说明:使用UIAlertController时,在显示时,需要“模态”出这个空件,最好是自定义一个类,否则很可能会“模态”不出来 class RootViewController: UIView...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对话框视图UIAlertView,上拉菜单UIActionSheet,以及9.0之后完全取代他们的的UIAlertController
举报原因:
原因补充:

(最多只允许输入30个字)