关于支付宝支付界面的实现
2015-12-07 11:48
295 查看
本篇博客,借鉴其他的博客仅仅阐述支付界面的实现而已. 最初我考虑这个问题的时候, 其实有很多疑点, 首先我要创建四个输入框, 输入完了以后, 我是不是要把每个输入框输入的内容在组合在一起, 去判断是不是正确, 最后一个输入框要做处理操作等等… 所以我觉得很麻烦, 后来在qq群里有人发了一些网址, 上去看了一下, 其实我们想的复杂了.
其实是四个输入框是显示的, 默认长度为1, 设置为安全码.在创建一个输入框不用于显示, 用于存储键盘输入的值, 就可以达到支付宝的效果了.下面看代码(大部分为其他博客粘贴过来, 处理了一些小问题而已)
pragma mark 文本框内容改变
界面的处理基本上就这样了
其实是四个输入框是显示的, 默认长度为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 = @""; } } } } }
界面的处理基本上就这样了
相关文章推荐
- 通过修改UIdatePicker的字体颜色来认清Runtime的真相
- 站内加百度搜索
- iOS与android的操作与交互比较区别
- Oracle用户管理(基础)
- IoC控制反转(即依赖注入模式DI)介绍
- Git使用(下)
- 【工具】FormatUtil.ava 常用工具类
- PCA相关数学概念理解
- Java swing皮肤(look and feel)大全
- POJ-1703-Find them, Catch them-带权并查集
- QR code
- [杂谈]开个Blog记录一些开发相关的东西
- Exchange 2016 之存储配额
- R语言的多维可视化方法(ggplot二维图表现多维)
- java socket编程之聊天室(一)
- glib库异步队列和线程池代码分析
- 本能
- 断言(ASSERT)的用法
- http://blog.csdn.net/desow/article/details/4843556
- Qt控件颜色面板类Qpalette