怎么改uialertview的样式
发布网友
发布时间:2022-04-28 16:45
我来回答
共1个回答
热心网友
时间:2022-06-19 18:57
首先 我们知道,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 }