一、ActionSheet操作表,用来罗列用户的操作
二、UIAlertView用来弹出与用户交互的信息框以及输入框
三、整合的UIAlertController:
典型案例测试:
- (void)actionSheet{
UIActionSheet *actionSheet = [[UIActionSheetalloc] initWithTitle:@"操作表"delegate:self cancelButtonTitle:@"取消"destructiveButtonTitle:@"确定"otherButtonTitles:@"按钮1",@"按钮2",@"按钮3",nil];
//操作表的类型
actionSheet.actionSheetStyle =UIActionSheetStyleDefault;
//按顺序追一个带标题的按钮
[actionSheet adonWithTitle:@"追加的按钮"];
// 取得按钮的个数
NSInteger btnNum = [actionSheetnumberOfButtons];
NSLog(@"操作表按钮的个数:%li",(long)btnNum);
//取得第几个按钮的标题
NSString *btnTitle = [actionSheetbuttonTitleAtIndex:0];
NSLog(@"第一个按钮为:%@",btnTitle);
//取消按钮的下标
NSLog(@"取消按钮的下标:%li",[actionSheetcancelButtonIndex]);
//确定按钮的下标
NSLog(@"确定按钮的下标:%li",[actionSheetdestructiveButtonIndex]);
//第一个其他按钮的下标
NSLog(@"第一个其他按钮的下标:%li",[actionSheetfirstOtherButtonIndex]);
//设置代理
actionSheet.delegate = self;
// 弹出操作表
[actionSheet showInView:self.view];
}
#pragma mark -actionSheet状态监视代理
//操作表显示前调用
-(void)willPresentActionSheet:(UIActionSheet *)actionSheet{
NSLog(@"操作表显示前");
}
//操作表显示后调用
-(void)didPresentActionSheet:(UIActionSheet *)actionSheet{
NSLog(@"操作表显示后");
}
//操作表被意外强制关闭时调用,不是触摸取消按钮时调用
-(void)actionSheetCancel:(UIActionSheet *)actionSheet {
NSLog(@"操作表被意外强制关闭");
}
//点击操作表的按钮时调用
-(void)actionSheet:(UIActionSheet *)actionSheetclickeonAtIndex:(NSInteger)buttonIndex {
NSString *btnTitle = [actionSheetbuttonTitleAtIndex:buttonIndex];
NSLog(@"点击了按钮:%@",btnTitle);
}
//操作表关闭前调用
-(void)actionSheet:(UIActionSheet *)actionSheetwillDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"操作表关闭前");
}
//操作表关闭后调用以及程序进入睡眠状态时调用
-(void)actionSheet:(UIActionSheet *)actionSheetdidDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"操作表关闭或者程序进入睡眠状态");
}
- (void)alertView{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示框"message:@"提示信息"delegate:self cancelButtonTitle:@"取消"otherButtonTitles:@"确定",nil];
//提示框类型
alertView.alertViewStyle =UIAlertViewStyleLoginAndPasswordInput;
//设置代理
alertView.delegate = self;
//显示提示框
[alertView show];
}
#pragma mark -alertView状态监视代理
//显示前调用
-(void)willPresentAlertView:(UIAlertView *)alertView {
NSLog(@"提示框显示前");
}
//显示后调用
-(void)didPresentAlertView:(UIAlertView *)alertView {
NSLog(@"提示框显示后");
}
//提示框被意外强制关闭时调用,不是触摸取消按钮时调用
-(void)alertViewCancel:(UIAlertView *)alertView {
NSLog(@"提示框被意外强制关闭,不是触摸取消按钮");
}
//点击了第buttonIndex个按钮时调用
-(void)alertView:(UIAlertView *)alertViewclickeonAtIndex:(NSInteger)buttonIndex {
NSString *btnTitle = [alertViewbuttonTitleAtIndex:buttonIndex];
NSLog(@"点击了按钮:%@",btnTitle);
}
//提示框关闭前调用
-(void)alertView:(UIAlertView *)alertViewwillDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"提示框关闭前");
}
//提示框关闭后调用以及程序进入睡眠状态时调用
-(void)alertView:(UIAlertView *)alertViewdidDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"提示框关闭后或者程序进入睡眠状态");
}
//输入框样式中输入框开始编辑后以及输入内容过程中调用,返回值为NO时禁用其他按钮点击,返回YES允许其他按钮点击
-(BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView*)alertView{
NSLog(@"开始编辑或者输入框内容变化");
//这里设置只有两个输入框的内容都不为空时启用其他按钮进行进一步操作
if ([[alertView textFieldAtIndex:0].textisEqualToString:@""] || [[alertView textFieldAtIndex:1].textisEqualToString:@""]) {
returnNO;
}else {
returnYES;
}
}