怎么改uialertview的样式
1个回答
推荐于2016-06-08 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517199
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
首先 我们知道,UIAlertView实际上有多种样式,在xcode中,按住cmd点击UIAlertView,进入头文件我们看到:
1 typedef NS_ENUM(NSInteger, UIAlertViewStyle) {
2 UIAlertViewStyleDefault = 0, //默认样式
3 UIAlertViewStyleSecureTextInput, //加密文本样式
4 UIAlertViewStylePlainTextInput, //普通文本样式
5 UIAlertViewStyleLoginAndPasswordInput //帐号密码样式
6 };
其次 , 我们实现一下加密文本样式的UIAlertView:
1、在 viewController.m 文件中的 @interface部分,遵守 <UIAlertViewDelegate> 协议:
1 #import "moboViewController.h"
2
3 @interface moboViewController () <UIAlertViewDelegate>
4
5 @end
2、在- (void) viewDidLoad 方法中初始化 UIAlertView的一个 实例,并且设定其样式为 加密文本样式。
1 - (void)viewDidLoad
2 {
3 [super viewDidLoad];
4
5 // 初始化 alertView,设定代理为 self
6 UIAlertView *altView = [[UIAlertView alloc]initWithTitle:[self altTitle] message:[self altMSG] delegate:self cancelButtonTitle:[self cancelBtnTitle] otherButtonTitles:[self otherBtnTitle], nil];
7
8 // 设定altView类型
9 [altView setAlertViewStyle:UIAlertViewStyleSecureTextInput];
10
11 // 拿到UITextField
12 UITextField *tf = [altView textFieldAtIndex:0];
13
14 // 设置textfield 的键盘类型。
15 tf.keyboardType = UIKeyboardTypeNumberPad;
16
17 // 显示 alertView
18 [altView show];
19
20 }
3、实现-(NSString*) altTitle 、-(NSString*) altMSG、-(NSString*) altTitle、-(NSString*) cancelBtnTitle、-(NSString*) otherBtnTitle方法。
1 //返回 标题
2 - (NSString *)altTitle{
3 return @"下线通知";
4 }
5
6 //返回 消息体
7 - (NSString *)altMSG{
8 return @"你的帐号在异地登录,密码可能泄露,建议前往http://mobodemy.com进行修改。";
9 }
10
11 //返回 退出按钮 标题
12 - (NSString *) cancelBtnTitle {
13 return @"退出";
14 }
15
16 //返回 重新登录 按钮标题
17 - (NSString *) otherBtnTitle {
18 return @"重新登录";
19 }
4、实现监听按钮点击方法
1 //监听点击时间 代理方法
2 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
3 {
4 NSString *btnTitle = [alertView buttonTitleAtIndex:buttonIndex];
5 if ([btnTitle isEqualToString:[self cancelBtnTitle]]) {
6 NSLog(@"你点击了退出");
7 }
8 else if ([btnTitle isEqualToString:[self otherBtnTitle]] ) {
9 NSLog(@"你点击了重新登录按钮");
10 }
11 }
1 typedef NS_ENUM(NSInteger, UIAlertViewStyle) {
2 UIAlertViewStyleDefault = 0, //默认样式
3 UIAlertViewStyleSecureTextInput, //加密文本样式
4 UIAlertViewStylePlainTextInput, //普通文本样式
5 UIAlertViewStyleLoginAndPasswordInput //帐号密码样式
6 };
其次 , 我们实现一下加密文本样式的UIAlertView:
1、在 viewController.m 文件中的 @interface部分,遵守 <UIAlertViewDelegate> 协议:
1 #import "moboViewController.h"
2
3 @interface moboViewController () <UIAlertViewDelegate>
4
5 @end
2、在- (void) viewDidLoad 方法中初始化 UIAlertView的一个 实例,并且设定其样式为 加密文本样式。
1 - (void)viewDidLoad
2 {
3 [super viewDidLoad];
4
5 // 初始化 alertView,设定代理为 self
6 UIAlertView *altView = [[UIAlertView alloc]initWithTitle:[self altTitle] message:[self altMSG] delegate:self cancelButtonTitle:[self cancelBtnTitle] otherButtonTitles:[self otherBtnTitle], nil];
7
8 // 设定altView类型
9 [altView setAlertViewStyle:UIAlertViewStyleSecureTextInput];
10
11 // 拿到UITextField
12 UITextField *tf = [altView textFieldAtIndex:0];
13
14 // 设置textfield 的键盘类型。
15 tf.keyboardType = UIKeyboardTypeNumberPad;
16
17 // 显示 alertView
18 [altView show];
19
20 }
3、实现-(NSString*) altTitle 、-(NSString*) altMSG、-(NSString*) altTitle、-(NSString*) cancelBtnTitle、-(NSString*) otherBtnTitle方法。
1 //返回 标题
2 - (NSString *)altTitle{
3 return @"下线通知";
4 }
5
6 //返回 消息体
7 - (NSString *)altMSG{
8 return @"你的帐号在异地登录,密码可能泄露,建议前往http://mobodemy.com进行修改。";
9 }
10
11 //返回 退出按钮 标题
12 - (NSString *) cancelBtnTitle {
13 return @"退出";
14 }
15
16 //返回 重新登录 按钮标题
17 - (NSString *) otherBtnTitle {
18 return @"重新登录";
19 }
4、实现监听按钮点击方法
1 //监听点击时间 代理方法
2 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
3 {
4 NSString *btnTitle = [alertView buttonTitleAtIndex:buttonIndex];
5 if ([btnTitle isEqualToString:[self cancelBtnTitle]]) {
6 NSLog(@"你点击了退出");
7 }
8 else if ([btnTitle isEqualToString:[self otherBtnTitle]] ) {
9 NSLog(@"你点击了重新登录按钮");
10 }
11 }
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |