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

一、准备工作

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

二、程序实现

  • 实现思路怎样

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

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

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

  1. -(void)passwordFieldDidChange:(UITextField *)field
  2. {
  3. [self setDotsViewHidden];
  4. for (int i = 0; i < _passwordField.text.length; i ++)
  5. {
  6. if (_passwordDotsArray.count > i )
  7. {
  8. UIView *dotView = _passwordDotsArray[i];
  9. [dotView setHidden:NO];
  10. }
  11. }
  12. if (_passwordField.text.length == 6)
  13. {
  14. NSString *password = _passwordField.text;
  15. if ([password isEqualToString:_password])
  16. {
  17. NSLog(@" 打印信息 密码正确");
  18. }
  19. else
  20. {
  21. UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:@"密码错误,请重新输入" preferredStyle:UIAlertControllerStyleAlert];
  22. // Create the actions.
  23. UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
  24. [self cleanPassword];
  25. }];
  26. // Add the actions.
  27. [alertController addAction:cancelAction];
  28. [self presentViewController:alertController animated:YES completion:nil];
  29. }
  30. }
  31. }
  32. //将所有的假密码点设置为隐藏状态
  33. - (void)setDotsViewHidden
  34. {
  35. for (UIView *view in _passwordDotsArray)
  36. {
  37. [view setHidden:YES];
  38. }
  39. }

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

这里我采取的方法是继承 UITextField 然后重写方法

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender

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

三、运行效果

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



    iOS 仿支付宝密码支付

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

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

iOS 仿支付宝密码支付的更多相关文章

  1. iOS仿支付宝首页效果

    代码地址如下:http://www.demodashi.com/demo/12776.html 首先看一下效果 状态栏红色是因为使用手机录屏的原因. 1.问题分析 1.导航栏A有两组控件,随着tabl ...

  2. iOS仿支付宝首页的刷新布局效果

    代码地址如下:http://www.demodashi.com/demo/12753.html XYAlipayRefreshDemo 运行效果 动画效果分析 1.UI需要变动,向上滑动的时候,顶部部 ...

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

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

  4. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  5. iOS - AliPay 支付宝支付

    1.支付宝支付申请 支付宝支付官方签约集成指引 支付宝APP支付官方集成指引 蚂蚁金服开放平台 1.1 支付宝 APP 支付申请步骤 APP 支付:APP 支付是商户通过在移动端应用 APP 中集成开 ...

  6. IOS开发--支付宝支付

    前言:继上次<IOS开发--微信支付>以来,一直没有太多时间,更新总结详细支付这样的长篇大论,很抱歉.今天,推出支付宝支付的详细流程. 1.开始下载和查看支付宝支付的Demo. 我们直接进 ...

  7. 集成支付宝钱包支付iOS SDK的方法与经验

    流程 摘自第一个文档<支付宝钱包支付接口开发包2.0标准版.pdf> 图中的“商户客户端”就是我们的iOS客户端需要做的事情: 调用支付宝支付接口 处理支付宝返回的支付结果 在调用支付宝支 ...

  8. ios--集成支付宝钱包支付iOS SDK的方法与经验

    文/胖花花(简书作者)原文链接:http://www.jianshu.com/p/fe56e122663e著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 没想到,支付宝的SDK是我目前 ...

  9. 集成支付宝钱包支付ios SDK的方法和经验

    没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 “请点此下载集成开 ...

随机推荐

  1. 【BZOJ 1697】1697: [Usaco2007 Feb]Cow Sorting牛排序

    1697: [Usaco2007 Feb]Cow Sorting牛排序 Description 农夫JOHN准备把他的 N(1 <= N <= 10,000)头牛排队以便于行动.因为脾气大 ...

  2. [BZOJ4025]二分图(线段树分治,并查集)

    4025: 二分图 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2191  Solved: 800[Submit][Status][Discuss] ...

  3. BZOJ 2157 旅游(动态树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2157 [题目大意] 支持修改边,链上查询最大值最小值总和,以及链上求相反数 [题解] ...

  4. [BZOJ1002](FJOI 2007) 轮状病毒

    [题目描述] 给定n(N<=100),编程计算有多少个不同的n轮状病毒. [输入格式] 第一行有1个正整数n. [输出格式] 将编程计算出的不同的n轮状病毒数输出 [样例输入] 3 [样例输出] ...

  5. React 16 升级时遇到的一个坑,分享一下

    遇到的坑 今天在跟着dva.js官网上面的一个教程写东西的时候,照着教程上面的代码写之后,运行总是报错:TypeError: Cannot read property 'object' of unde ...

  6. php 自动补位

    1  sprintf("%06d", 2); 2  str_pad();

  7. Java字符串格式化输入({0}/%s)

    用法: System.out.println(MessageFormat.format("{0}{1}",1,2)); System.out.println(String.form ...

  8. js模板引擎-art-template常用

    art-template javascript 模板引擎 分为原生语法和简洁语法,本文主要是讲简洁语法 基础数据渲染 输出HTML 流程控制 遍历 调用自定义函数方法 子模板引入 基础数据渲染 一.引 ...

  9. python笔记5-python2写csv文件中文乱码问题

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

  10. appium+python自动化45-夜神模拟器连不上(adb server version (36) doesn't match this client (39); killing...)

    前言 最新下了个最新版的夜神模拟器,然后adb devices发现连不上模拟器了,报adb server version (36) doesn't match this client (39); ki ...