今天 进行 UIAlertView和 UIActionSheet的学习
首先这两个东西是什么呢???
UIAlertView 很容易理解,他就类似于 android 中 的 AlertDialog ,来看看 IOS下的 UIAlertView的效果
ok,那 UIActionSheet是什么东东呢?个人理解,就是 一个特殊的 UIAlertView(看 源码可知,UIAlertView和 UIActionSheet都是UIView的子类),具体图如下
这个两个类的展现效果,初始化代码,弹出处理代码都很类似,所以放在一篇文章里说明。
UIAlertView部分
1 首先写一个 button的 点击事件,按钮命名为 alertView(依靠前几集的内容可以很轻松写一个,这里就不写了)
2 button的点击事件处理
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"info" message:@"be careful" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:@"cancel",@"hello", nil];
[alert show];
这样即可,如果不是自动回收垃圾的情况还要把alert release 下
可以看到 如本课第一幅图的弹出窗体,这里讲解一下 init 该alertView的方法参数
initWithTitle:alertView的标题
message :alertView的内容
delegate :alertView的委托,即表示android中的点击该alertView 的 是按钮,否按钮以及其他按钮的处理委托
cancelButton:取消按钮名称
otherButtonTitles:其他按钮,可以为数组方式,最后以nil结束
这里的参数都简单易懂,除了委托,什么是委托?就是 委托给谁来处理,在本文中,我们委托 该Controller来处理 UIAlertView按钮点击。
3 该 controller 需要实现 UIAlertViewDelegate协议,协议就相当于 java 中的interface
4 controller 实现了该 协议,就要实现 处理方法(和java 中 interface不一样的是,ios 协议中的方法可不实现,可部分实现)
我们实现 当点击按钮的时候 会输出clicked:和 当前按钮索引,运行一下代码,果然成功了
UIActionSheet部分
UIActionSheet 和 UIAlertView 代码基本一样,委托处理也基本一样,这里就不详细来写了,只有 初始化有一点区别。
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"hello actionSheet" delegate:nil cancelButtonTitle:@"cancel" destructiveButtonTitle:@"ok" otherButtonTitles: nil];
[actionSheet showInView:self.view];
ok,今天就到这里