您的位置:首页 > 其它

关于支付宝支付界面的实现

2015-12-07 11:48 295 查看
本篇博客,借鉴其他的博客仅仅阐述支付界面的实现而已. 最初我考虑这个问题的时候, 其实有很多疑点, 首先我要创建四个输入框, 输入完了以后, 我是不是要把每个输入框输入的内容在组合在一起, 去判断是不是正确, 最后一个输入框要做处理操作等等… 所以我觉得很麻烦, 后来在qq群里有人发了一些网址, 上去看了一下, 其实我们想的复杂了.

其实是四个输入框是显示的, 默认长度为1, 设置为安全码.在创建一个输入框不用于显示, 用于存储键盘输入的值, 就可以达到支付宝的效果了.下面看代码(大部分为其他博客粘贴过来, 处理了一些小问题而已)

- (void)setUI
{
//这个输入框是隐藏的, 输入内容存在这里面
topTX = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
topTX.hidden = YES;
topTX.keyboardType = UIKeyboardTypeNumberPad;
[topTX addTarget:self action:@selector(txchange:) forControlEvents:UIControlEventEditingChanged];
[self.view addSubview:topTX];

//进入界面,topTX成为第一响应
[topTX becomeFirstResponder];
//下面这四个输入框, 为界面显示的输入框.
for (int i = 0; i < 4; i++)
{
UITextField *pwdLabel = [[UITextField alloc] initWithFrame:CGRectMake(90+i*40, 100, 30, 30)];
pwdLabel.layer.borderColor = [UIColor blackColor].CGColor;
pwdLabel.enabled = NO;
pwdLabel.textAlignment = NSTextAlignmentCenter;//居中
pwdLabel.secureTextEntry = YES;//设置密码模式
pwdLabel.layer.borderWidth = 1;
[self.view addSubview:pwdLabel];
//dataScoure为显示输入框的数组
[dataSource addObject:pwdLabel];
}
}


pragma mark 文本框内容改变

- (void)txchange:(UITextField *)tx
{
NSString *password = tx.text;
NSLog(@"测试%@", password);
//是否需要隐藏键盘自己可以考虑
if (password.length == dataSource.count)
{
//长度等于数组的长度时候隐藏键盘
[tx resignFirstResponder];//隐藏键盘
}

for (int i = 0; i < dataSource.count; i++)
{
UITextField *pwdtx = [dataSource objectAtIndex:i];
if (i < password.length)
{
NSString *pwd = [password substringWithRange:NSMakeRange(i, 1)];
pwdtx.text = pwd;
} else {
//这里处理的是点击键盘的x号, 显示的输入框往后退一位
pwdtx.text = @"";//点击x号, 可以后退以为
}
}
//如果到最后一位, 要处理密码是否正确,或者错误
if (password.length == 4)
{
//在这里做处理, 如果password等于你所存储的密码
if(等于){
//这里面做处理密码输入正确的事件
} else {

//错误的话将键盘和内容全部清空,  再次输入
tx.text = @"";//将内容先清空掉
for (int i = 0; i < dataSource.count; i++)
{
UITextField *pwdtx = [dataSource objectAtIndex:i];
if (i < password.length)
{
//清空显示的密码框
pwdtx.text = @"";
}
}
}
}
}


界面的处理基本上就这样了


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: