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

来源:互联网 发布:sketch软件介绍 编辑:程序博客网 时间:2024/05/29 02:44

我们经常在通关游戏,或者提示信息的时候看到屏幕中央直接弹出个视图,其实这是一种对话框视图,通过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中还有很多的功能供我们学习,挖掘,警示对话框,文本对话框,如何在输入多少字数的字符的情况下才激活按钮.......这些还需要以后不断学习,思考大笑,我这只是简单说了一下如何创建基本的视图,后面的东西还有很多.........

1 0