UIAlertview UIActionSheet

UI控件篇——UIActionSheet(操作表)和UIAlertView(警告框)

2011-12-20 16:49 by 张智清, 1514 阅读, 3 评论, 收藏编辑

UIActionSheet用于迫使用户在两个或更多的选项之间进行选择的模式视图。操作表是从屏幕底部弹出,显示一系列按钮供用户选择,用户只有单击一个按钮后才能继续使用应用程序。(可以理解为桌面应用系统的右键菜单的功能)

UIAlertView警告默认是以蓝色圆角矩形形式显示在屏幕中央,警告框可显示一个或多个按钮。

为了让控制器类充当操作表的委托,控制器需要遵从UIActionSheetDelegate协议。

一、UIActionSheet(操作表)的创建

带标题名称来初始化创建UIActionSheet表:initWithTitle
      initWithTitle: delegate: cancelButtonTitle: destructiveButtonTitle: otherButtonTitles:

对于在某个视图中显示出创建好的UIActionSheet,则要用到showInView:这个方法。当我们是采用自定义创建的操作表时,则该操作表中的按钮必须实现UIActionSheetDelegate协议函数,以控制在点击按钮之后的操作。如:

复制代码
- (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
     if(buttonIndex == 0) {
        //NSLog(@"ok");
     }
     else {
       //NSLog(@"cancel");
     }
}
复制代码

二、UIAlertView (警告框)的创建

带标题名称来初始化创建UIAlertView警告:initWithTitle
      initWithTitle: message: delegate: cancelButtonTitle: otherButtonTitles:  
要显示创建好的UIAlertView警告框只要调用show方法即可。自定义警告框中的按钮要实现UIAlertViewDelegate协议函数,总之,UIAlertView实例要响应按钮点击,至少需要该委托的支持。此处可以控制在点击按钮之后的操作。如:

- (void)alertView: (UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    //use "buttonIndex" to decide your action
}

注意:使用非自动释放警告框时,要确保有一个委托负责在用户点击按钮时释放警告框!!

警告框扩展应用:给UIAlertView添加子视图(示例为添加一个活动指示符)

复制代码
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"UIAlertView" message:nil delegate:nil cancelButtonTitle:nil otherButtonTitle:nil];[alert show];

UIActivityIndicatorView *activeView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activeView.center = CGPointMake(alert.bounds.size.width/2.0f, alert.bounds.size.height-40.0f);
[activeView startAnimating];
[alert addSubview:activeView];
[activeView release];
[alert release];

// Auto dismiss after 3 seconds for this example
[self performSelector:@selector(performDismiss) withObject:nil afterDelay:3.0f];
复制代码

当然若是自定义创建的是无按钮警告框则必须实现手动让其消失(因为它一般不会正确回调委托方法,则不会自动消失)。具体就是调用dismissWithClickedButton Index: animated:来实现。

- (void)performDismiss {
    [alert dismissWithClickedButton Index:0 animated:NO];
}

另外UIActivityIndicatorView实例提供了很多轻量级视图,它们显示一个标准的旋转进度轮。其中不同风格的UIActivityIndicatorView类使用场合不同。UIActivityIndicatorViewStyleWhite和UIActivityIndicatorViewStyleGray的大小是20x20像素。而UIActivityIndicatorViewStyleWhiteLarge提供了一个最大、最清晰的指示器,为37x37像素。通过发送startAnimating启动指示器。要停止则调用stopAnimating。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值