警告框控件 (UIAlertView)
1. 警告框控件 (UIAlertView) 简介
(1) UIAlertView 创建流程
UIAlertView 创建流程 :-- 创建 UIAlertView : 创建时指定 标题, 内容, 按钮等信息, 按钮监听需要创建 UIAlertView 的 UIAlertViewDelegate 委托对象;
-- 显示 UIAlertView : 调用显示 UIAlertView 的显示方法;
-- 监听按钮 : 为委托对象实现 UIAlertViewDelegate 协议中的方法即可;
(2) UIAlertViewDelegate 协议方法
UIAlertViewDelegate 协议方法简介 :
-- "- (void) alertView : (UIAlertView *) alertView clickedButtonAtIndex : (NSInteger) buttonIndex :" 方法 : 用户单击对话框中的按钮激发的方法, buttonIndex 是点击的按钮的索引;
-- "- (void) willPresentAlertView : (UIAlertView *) alertView" 方法 : 对话框将要显示时激发该方法;
-- "- (void) didPresentAlertView : (UIAlertView *) alertView" 方法 : 对话框完全显示出来后激发该方法;
-- "- (BOOL) alertViewShouldEnableFirstOtherButton : (UIAlertView *) alertView" 方法 : 对话框中除 cancel 按钮之后的第一个按钮被启用回调该方法;
-- "- (void) alertView : (UIAlertView *) alertView willDissmissWithButtonIndex : (NSInteger) buttonIndex" 方法: 单击某按钮将要隐藏警告框时激发该方法;
-- "- (void) alertView : (UIAlertView *) alertView didDissmissWithButtonIndex : (NSInteger) buttonIndex" 方法 : 单击某个按钮已经隐藏警告框后激发该方法;
-- "- (void) alertViewCancel : (UIAlertView * ) alertView " 方法 : 对话框被取消时激发的方法;
(3) UIAlertView 输入框风格设置
UIAlertView 的 actionSheetStyle 属性 :
-- 主要作用 : 设置 UIAlertView 的风格, 取值是 枚举值;
-- UIAlertViewStyleDefault 枚举值 : 默认警告框风格;
-- UIAlertViewStyleSecureTextInput 枚举值 : 警告框中有一个密码输入框;
-- UIAlertViewStylePlainTextInput 枚举值 : 警告框中包含普通输入框;
-- UIAlertViewStyleLoginAndPasswordInput 枚举值 : 警告框中包含 用户名 密码输入;
访问输入框方法 :
-- "- (UITextField *) textFieldAtIndex : (NSInteger) textFieldIndex" : 获取 索引值 为 textFieldIndex 的文本输入框;
2. 简单的对话框示例
(1) 创建 UIAlertView API
创建方法 :
- [[UIAlertView alloc] initWithTitle:<#(NSString *)#> message:<#(NSString *)#> delegate:<#(id)#> cancelButtonTitle:<#(NSString *)#> otherButtonTitles:<#(NSString *), ...#>, nil nil];
-- 参数一 : initWithTittle 对话框名称;
-- 参数二 : message 对话框内容;
-- 参数三 : delegate 委托对象;
-- 参数四 : cancelButtonTittle 取消按钮文字内容;
-- 参数五 : otherButtonTittles 其它按钮文字内容;
-- 真实代码 :
- /*
- 创建 UIAlertView 控件, 传入参数 标题 内容 委托对象 取消按钮 其它按钮
- */
- UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"对话框标题" message:@"对话框内容" delegate:self cancelButtonTitle:@"取消显示" otherButtonTitles:@"按钮1", @"按钮2", @"按钮3", @"按钮4", nil nil];
显示对话框 : [UIAlertView show];
(2) 代码示例
代码示例 :
-- 界面设计文件 :
-- OCViewController.h :
- //
- // OCViewController.h
- // UIAlertView
- //
- // Created by octopus on 15-12-14.
- // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- @interface OCViewController : UIViewController <UIAlertViewDelegate>
- //按钮的 IBAction 方法
- - (IBAction)click:(id)sender;
- @end
-- OCViewController.m :
- //
- // OCViewController.m
- // UIAlertView
- //
- // Created by octopus on 15-12-14.
- // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved.
- //
- #import "OCViewController.h"
- @interface OCViewController ()
- @end
- @implementation OCViewController
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- //点击按钮弹出 UIAlertView 对话框
- - (IBAction)click:(id)sender {
- /*
- 创建 UIAlertView 控件, 传入参数 标题 内容 委托对象 取消按钮 其它按钮
- */
- UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"对话框标题" message:@"对话框内容" delegate:self cancelButtonTitle:@"取消显示" otherButtonTitles:@"按钮1", @"按钮2", @"按钮3", @"按钮4", nil nil];
- //调用该方法显示 UIAlertView 控件
- [alert show];
- }
- //实现的 UIAlertViewDelegate 协议中的方法
- - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
- NSString * msg = [NSString stringWithFormat:@"点击了按钮 %d", buttonIndex];
- UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"弹出框" message: msg delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil nil];
- [alert show];
- }
- @end
-- 运行界面展示 :
3. 警告框控件 (UIAlertView) 示例代码
(1) 相关 API 简介
相关 API 简介 :
-- 设置 警告提示框 风格 :
- //设置提示框的风格 账号密码输入
- alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
-- 设置输入框键盘输入类型 :
- //设置密码输入是数字键盘
- [alertView textFieldAtIndex:1].keyboardType = UIKeyboardTypeNumberPad;
-- 获取指定索引的输入框 :
- //获取账号输入文本框
- UITextField * userNameField = [alertView textFieldAtIndex:0];
-- 生成警告提示框 :
- //创建一个带 两个按钮的 提示框 确定 取消
- UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"登录" message:@"输入用户名密码" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil nil];
-- 显示警告提示框 :
- //显示警告提示框
- [alertView show];
(2) 示例代码
示例代码 :
-- 界面设计文件 :
-- OCViewController.h :
- //
- // OCViewController.h
- // TextFieldUIAlertView
- //
- // Created by octopus on 15-12-17.
- // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- @interface OCViewController : UIViewController <UIAlertViewDelegate>
- - (IBAction)click:(id)sender;
- @end
-- OCViewController.m :
- //
- // OCViewController.m
- // TextFieldUIAlertView
- //
- // Created by octopus on 15-12-17.
- // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved.
- //
- #import "OCViewController.h"
- @interface OCViewController ()
- @end
- @implementation OCViewController
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (IBAction)click:(id)sender {
- //创建一个带 两个按钮的 提示框 确定 取消
- UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"登录" message:@"输入用户名密码" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil nil];
- //设置提示框的风格 账号密码输入
- alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
- //设置密码输入是数字键盘
- [alertView textFieldAtIndex:1].keyboardType = UIKeyboardTypeNumberPad;
- //显示警告提示框
- [alertView show];
- }
- - (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
- if(buttonIndex == 1){
- //获取账号输入文本框
- UITextField * userNameField = [alertView textFieldAtIndex:0];
- //获取密码输入文本框
- UITextField * passwordField = [alertView textFieldAtIndex:1];
- //生成 一个 包含账号 密码 输入的字符串
- NSString * content = [NSString stringWithFormat:@"用户名为 : %@, 密码为 : %@", userNameField.text, passwordField.text];
- //生成警告提示框
- UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"标题" message:content delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil nil];
- //显示警告提示框
- [alertView show];
- }
- }
- - (void) willPresentAlertView:(UIAlertView *)alertView{
- //遍历所有的 UIView 集合
- for(UIView * view in alertView.subviews){
- //如果类型是 UILabel
- if([view isKindOfClass:[UILabel class]]){
- //获取 UILabel 控件
- UILabel * label = (UILabel *) view;
- //设置 UILabel 控件右对齐
- label.textAlignment = UITextAlignmentRight;
- }
- }
- }
- @end
-- 界面展示效果 :
UIActionSheet 控件
1. UIActionSheet 简介
(1) UIActionSheet 作用
UIActionSheet 作用 : 该控件是显示在界面底部的按钮列表, 该控件 有 一个标题 和 多个按钮;
(2) UIActionSheet 按钮
UIActionSheet 固定按钮 :
-- 取消按钮 : 灰色背景, 主要用于取消该 UIActionSheet 控件显示;
-- 销毁按钮 : 红色背景, 用于删除某记录时, 使用该按钮确认销毁;
(3) UIActionSheet 风格
UIActionSheet 支持风格 :
-- UIActionSheetStyleDefault : 灰色背景上显示白色文字;
-- UIActionSheetStyleBlackTranselucent : 透明黑色背景上显示白色文字;
-- UIActionSheetBlackOpaque : 纯黑的背景上显示白色文字;
2. UIActionSheet 示例代码
UIActionSheet 示例代码 :
-- 界面设计文件 :
-- OCViewController.h :
- //
- // OCViewController.h
- // UIActionSheet
- //
- // Created by octopus on 15-12-17.
- // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- @interface OCViewController : UIViewController <UIActionSheetDelegate>
- - (IBAction)click:(id)sender;
- @end
-- OCViewController.m :
- //
- // OCViewController.m
- // UIActionSheet
- //
- // Created by octopus on 15-12-17.
- // Copyright (c) 2015年 www.octopus.org.cn. All rights reserved.
- //
- #import "OCViewController.h"
- @interface OCViewController ()
- @end
- @implementation OCViewController
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
- }
- - (IBAction)click:(id)sender {
- UIActionSheet * actionSheet = [[UIActionSheet alloc] initWithTitle:@"是否删除" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定" otherButtonTitles: @"按钮一", @"按钮二", nil nil];
- actionSheet.actionSheetStyle = UIActionSheetStyleAutomatic;
- [actionSheet showInView:self.view];
- }
- - (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
- UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:[NSString stringWithFormat : @"点击了第 %d 个按钮", buttonIndex] delegate:nil cancelButtonTitle:@"取消" otherButtonTitles: nil nil];
- [alertView show];
- }
- @end
-- 运行界面展示 :