代码地址如下:
http://www.demodashi.com/demo/11484.html

一、准备工作

  • xcode
  • 主要实现输入密码的时候不可见

二、程序实现

  • 实现思路怎样
    在支付宝输入密码的时候,如果你不仔细看的话,你就会认为,握草,不是很简单的一个UITextField 然后将属性secureTextEntry设置为YES就可以么,然并….也许这才是支付宝做的好的地方吧,居然在输入密码的时候,什么什么也看不到,哪怕是一个数字,也不会有一闪然后变成黑点的效果。那么,问题来了,我们该怎么实现呢,在静静思考十几分钟后,终于有一个大概方法,那就是在输入密码的UITextField上面加view,并且设置为黑色,造成一种假象,而UITextField还是和普通的输入一样,只是输入的内容和光标不能被用户所看到。
  • 具体设计到哪些代码

    问题一 :如何解决用户看不到输入内容和光标
-(GLTextField *)passwordField
{if (nil == _passwordField){_passwordField = [[GLTextField alloc] initWithFrame:CGRectMake((kScreenWidth - 44 * 6)/2.0, 100, 44 * 6, 44)];_passwordField.delegate = (id)self;_passwordField.backgroundColor = [UIColor whiteColor];//将密码的文字颜色和光标颜色设置为透明色//之前是设置的白色 这里有个问题 如果密码太长的话 文字和光标的位置如果到了第一个黑色的密码点的时候 就看出来了_passwordField.textColor = [UIColor clearColor];_passwordField.tintColor = [UIColor clearColor];[_passwordField setBorderColor:UIColorFromRGB(0xdddddd) width:1];_passwordField.keyboardType = UIKeyboardTypeNumberPad;_passwordField.secureTextEntry = YES;[_passwordField addTarget:self action:@selector(passwordFieldDidChange:) forControlEvents:UIControlEventEditingChanged];}return _passwordField;
}


问题二 :怎么做到输入密码的时候黑点显示或消失一致

-(void)passwordFieldDidChange:(UITextField *)field
{[self setDotsViewHidden];for (int i = 0; i < _passwordField.text.length; i ++){if (_passwordDotsArray.count > i ){UIView *dotView = _passwordDotsArray[i];[dotView setHidden:NO];}}if (_passwordField.text.length == 6){NSString *password = _passwordField.text;if ([password isEqualToString:_password]){NSLog(@" 打印信息  密码正确");}else{UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@"密码错误,请重新输入" preferredStyle:UIAlertControllerStyleAlert];// Create the actions.UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {[self cleanPassword];}];// Add the actions.[alertController addAction:cancelAction];[self presentViewController:alertController animated:YES completion:nil];}}
}//将所有的假密码点设置为隐藏状态
- (void)setDotsViewHidden
{for (UIView *view in _passwordDotsArray){[view setHidden:YES];}
}


问题三:由于UITextField 是可以复制其内容的,怎么屏蔽呢?

这里我采取的方法是继承 UITextField 然后重写方法
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender

//禁止粘贴复制全选等
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{UIMenuController *menuController = [UIMenuController sharedMenuController];if (menuController) {[UIMenuController sharedMenuController].menuVisible = NO;}return NO;
}

三、运行效果

  • 直接下载demo进行运行即可
  • 运行时的截图

    iOS 仿支付宝密码支付

代码地址如下:
http://www.demodashi.com/demo/11484.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

iOS 仿支付宝密码支付相关推荐

  1. android支付宝支付微信支付封装,Android仿支付宝微信支付密码界面弹窗封装dialog...

    一,功能效果 二,实现过程 1,先写xml文件:dialog_keyboard.xml 注意事项 (1),密码部分用的是一个线性布局中6个TextView,并设置android:inputType=& ...

  2. html5做密码形式的游戏,html5仿支付宝密码框的实现代码

    废话不多说了,直接给大家贴代码了,具体代码所示: 仿支付宝密码框-移动端测 *{ margin: 0; padding: 0; } body { padding: 50px; } .clearfix: ...

  3. Android自定义控件开发系列(三)——仿支付宝六位支付密码输入页面

    在移动互联领域,有那么几家龙头一直是我等学习和追求的目标,比如支付宝.微信.饿了么.酷狗音乐等等,大神举不胜举,他们设计的界面.交互方式已经培养了中国(有可能会是世界)民众的操作习惯:举个小例子,对话 ...

  4. angularjs html 支付宝支付,angular仿支付宝密码框输入效果

    项目需求,使用ng写一个密码框格子支付模块,一开始使用一个input+letter-spacing来分割字符,但是发现间距非常不好控制,随着字符的输入文本框字符串间距还会自动调整.最终从网上查找到一款 ...

  5. iOS 拦截支付宝H5支付,完成掉起支付宝APP支付,回到自己APP,完整流程

    先说一下这个想法的来源,然后有相关需求的朋友也可以这样来操作 公司产品用到了支付宝支付,但是避免上架审核问题(不能接入支付宝SDK,害怕检测),采用了支付宝的H5支付,作为产品的支付渠道:APP内部, ...

  6. ios使用支付宝进行支付,注意事项 集成支付宝钱包支付iOS SDK的方法与经验。...

    下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此下载集成开发包" Baidu和Googlep排在前面的支付宝开 ...

  7. Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    编辑框EditText算是Android的一个基础控件了,表面上看,EditText只负责接收用户手工输入的文本:可实际上,要把这看似简单的文本输入做得方便易用,并不是一个简单的事情.因为用户可能希望 ...

  8. iOS仿支付宝芝麻信用仪表盘效果

    概述 自定义View之高仿支付宝芝麻信用分数仪表盘动画效果 详细 代码下载:http://www.demodashi.com/demo/10654.html 仿支付宝芝麻信用仪表盘效果 一.主要思路 ...

  9. 使用html仿支付宝首页,iOS 仿支付宝首页样式(二)

    那篇文章里面方法有个一弊端,就是UITableView的高度和Cell的总高度一致,也就是UITableView不能滑动,UITableViewCell的复用机制页就不起作用了.哈哈,懒人版的支付宝首 ...

最新文章

  1. @ResponseBody
  2. 交互式讲解傅里叶变换
  3. Python之路(第三十八篇) 并发编程:进程同步锁/互斥锁、信号量、事件、队列、生产者消费者模型...
  4. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)
  5. Escape字符总结
  6. MFC窗口风格 WS_style/WS_EX_style
  7. Java IO: 流
  8. Video视频背景设计企业模板
  9. 10月15日发布!谷歌Pixel 4系列或将全系支持5G
  10. Java之面试基础知识学习笔记
  11. c语言编程十进制转八进制算法,C语言十进制如何转八进制?
  12. 史上最贵的merge代码,新浪程序员因加班错失年会77万大奖!
  13. 重型柴油车OBD系统进入逻辑
  14. 2019年小程序发展优势
  15. 大数据动物园-驯服野兽
  16. Python中 {:.0f} 格式化输出,{0:^30}什么意思 . format(name))
  17. SO SOIC TSOP TSSOP 封装
  18. setenv设置环境变量_setenv命令教程在Linux中添加,删除和更改环境变量
  19. 思科设备三层交换配置路由实现互通
  20. Editor.md安装使用(markdown)

热门文章

  1. 图像的频率谱和功率谱代表什么_使用 FastAI 和即时频率变换进行音频分类
  2. 26. GD32F103C8T6入门教程-CAN外设回环测试
  3. 7006.vue电商实战项目2-登录退出功能
  4. Linux uart驱动框架
  5. 数据结构与算法分析(一)——C++文件读写+py文件读写
  6. ROS 教程之 network:多台计算机之间网络通信(2)
  7. SVD 与 PCA 的直观解释(4): PCA 主成分分析
  8. 嵌入式Linux系统编程学习之五gcc/g++编译器
  9. 【Java数据结构与算法】第三章 双向链表和约瑟夫问题
  10. 【Java数据结构与算法】第二章 单链表及简单面试题