解决iOS验证码显示在左边问题

项目中有个短信验证码功能,测出来有个验证码靠左的bug,如下图所示:

看到问题首先度娘,结果只发现如下两条回答。https://tieba.baidu.com/p/7254829838

实际上并没有什么用,这个时候就在想是不是封装的这个输入框有问题,解决思路如下:

1. 首先用系统的UITextField输入框替换项目中封装的输入框,替换代码如下所示:[核心代码];

-(UITextField *)verifyV {
    if (!_verifyV) {
        _verifyV = [[UITextField alloc]init];
        _verifyV.backgroundColor = [UIColor cyanColor];
        _verifyV.placeholder = "请输入验证码";
        _verifyV.delegate = self;
        _verifyV.textContentType = UITextContentTypeOneTimeCode;
        _verifyV.keyboardType = UIKeyboardTypeASCIICapableNumberPad;
    }
    return  _verifyV;
}

运行之后,效果如下动图所示:

替换为项目的输入框之后,发现依旧有偏左的问题,此时基本可以验证我们封装的输入框没有太大问题,应该还是输入框的某些属性造成的,于是对写的这backgroundColorplaceholderdelegatetextContentTypekeyboardType这五个属性进行逐步排查,首先排除了backgroundColorplaceholderdelegatetextContentType四个属性,发现有无均存在问题,那么此时可以断定问题肯定存在**keyboardType**属性上面了。

2.排查**keyboardType**属性

扎一看**keyboardType**属性也没有什么问题,那么我换个枚举值试试吧,此时我把属性

_verifyV.keyboardType = UIKeyboardTypeASCIICapableNumberPad;

换成我们常用的数字键盘

_verifyV.keyboardType = UIKeyboardTypeNumberPad;

再次测试,发现居然是没有偏左的问题,那么把项目中涉及到UIKeyboardTypeASCIICapableNumberPad属性的统一替换掉,再次跑项目,发现居然是正常了。效果如下所示:

小结:

虽然问题得以解决,但是我查阅各方资料,包括官方文档,就没有说 UIKeyboardTypeASCIICapableNumberPad属性会造成验证码偏左问题,不知道是不是苹果bug,希望有看到类似的资料留言祝我解惑。

到此这篇关于iOS验证码显示在左边问题的文章就介绍到这了,更多相关iOS验证码内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解iOS 验证码输入的实现思路

    如图所示,现在很多App采用了类似下划线.方块等方式的验证码输入,直观美观!对于这种效果的实现方式,大概有以下几种方式: 1.多个UITextField组成 这种方式好处是有光标闪烁.但是在处理删除和动画效果时,就会显得有点笨拙,OFO应该是这样实现的,要严格处理好每个UITextField的FirstResponder. 2.一个UITextField组成,使用富文本 这个方式是可行的, 使用富文本设置每个字符的间距,允许编辑富文本,有光标闪烁,缺点应该也是不好处理动画效果. 3.使用UIVi

  • iOS实现短信验证码倒计时

    在开发中,经常在需要用户注册的时候会需要实现验证码倒计时的功能,下面是解决这个问题的两种思路(使用UIButton控件) 一.利用NSTimer计时器 1.新建一个UIButton按钮,设置成属性,名为codeButton.(UIButton样式一定要为自定义,否则后面倒计时数秒时会出现闪烁现象) 2.定义一个NSTimer的属性,名为timer,同时定义一个用于计时的int变量time,设置初始值为60. //启动一个定时器 self.timer = [NSTimer scheduledTim

  • iOS 输入验证码或密码,自动下一位的实例

    系统没有textFeild 的相关当输入内容改变时候的代理方法...所以我们自己加一个监听来实现如下的效果 自动跳转下一位 主要代码如下: [_code1F becomeFirstResponder]; [_code1F addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; [_code2F addTarget:self action:@select

  • IOS开发中如何设计短信验证码防刷机制

    最近遇到一个关于防止短信验证码被刷的产品设计问题,后来在面试一个前来应聘JAVA开发的程序员的时候,他也提到了他以前公司的系统也遭遇过这个被刷短信的问题.因此,就"如何设计短信验证码防刷机制"作一个总结和分享. 1.时间限制:60秒后才能再次发送 从发送验证码开始,前端(客户端)会进行一个60秒的倒数,在这一分钟之内,用户是无法提交多次发送信息的请求的.这种方法虽然使用得比较普遍,但是却不是非常有用,技术稍微好点的人完全可以绕过这个限制,直接发送短信验证码. 2.手机号限制:同一个手机

  • iOS动态验证码实现代码

    具体代码如下所示: // // AuthcodeView.h // BSbracelet // // Created by Christopher on 17/5/16. // Copyright © 2017年 ZTracy. All rights reserved. // #import <UIKit/UIKit.h> @interface AuthcodeView : UIView @property (strong, nonatomic) NSArray *dataArray;//字符

  • iOS登录时验证手机号与倒计时发送验证码问题详解

    前言 我们做登录的时候经常会使用到,验证手机号是否正确.向手机发送验证码倒计时60s的问题,我们改如何解决呢?让我们一起来探讨一下吧. 如下图: 首先,我们先说说判断手机号码是否正确的问题吧,我的想法是给字符串添加一个分类,然后写上这样的代码: + (BOOL)valiMobile:(NSString *)mobile{         if (mobile.length != 11){             //判断手机号码是否为11位             return NO;     

  • 解决iOS验证码显示在左边问题

    项目中有个短信验证码功能,测出来有个验证码靠左的bug,如下图所示: 看到问题首先度娘,结果只发现如下两条回答.https://tieba.baidu.com/p/7254829838 实际上并没有什么用,这个时候就在想是不是封装的这个输入框有问题,解决思路如下: 1. 首先用系统的UITextField输入框替换项目中封装的输入框,替换代码如下所示:[核心代码]: -(UITextField *)verifyV { if (!_verifyV) { _verifyV = [[UITextFie

  • 完美解决thinkphp验证码出错无法显示的方法

    本文实例讲述了完美解决thinkphp验证码出错无法显示的方法.分享给大家供大家参考.具体分析如下: 今天做到验证码这一块,想到tp自带验证图片,大喜,但鼓捣半天不出来,一直是个小 X的样子. 官方提示如下: 如果无法显示验证码,请检查: ① PHP是否已经安装GD库支持: ② 输出之前是否有任何的输出(尤其是UTF8的BOM头信息输出): ③ Image类库是否正确导入: ④ 如果是中文验证码检查是否有拷贝字体文件到类库所在目录: 但是测试半天,不行!网上找来一个能用的方法,放到一个文件里执行

  • 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题

    微信多图片上传必须挨个上传,也就是不能并行,得串行: 那么我们可以定义一个如下所示的上传函数: var serverIds = []; function uploadImages(localImagesIds) { if (localImagesIds.length === 0) { $.showPreloader('正在提交数据...'); $('form').submit(); } wx.uploadImage({ localId: localImagesIds[0], // 需要上传的图片

  • JS解决IOS中拍照图片预览旋转90度BUG的问题

    上篇文章[Js利用Canvas实现图片压缩功能]中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度.对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编程了.通过度娘找到了相关资料,解决方法记录在此.这个问题的具体因素其实我还是不清楚是为何导致的,只有IOS和部分三星手机会出现此bug. 绝大部分的安卓机并无此问题. 解决此问题需要引入一个第三方 JS 库: exif.js 下载地址:https://github.com/exif-js/exif-

  • 解决ios微信下vue项目组件切换并自动播放音频问题

    最近在做一个英语答题项目 , 项目需求是通过答题取的成绩 , 答题的题型是分为 , 听音选图 , 看图选词 , 和填空题 . 项目总共分为了3个页面 , 开始页 ,答题页 和结束页面 ,答题页关于每种题型 , 我做了相应的组件 , 每次切换题目的时候 ,显示对应的的组件 , 要求听音选图的时候会自动播放音频 . 惯例 , ios下的safari和微信内置浏览器都不支持audio的自动播放 , 通常的解决方案都是通过 document.addEventListener('WeixinJSBridg

  • 解决ios端点击按钮闪烁问题(小tips)

    在ios端,safari浏览器上触发click事件有300ms的延迟相应,为touch添加的样式会和click冲突而出现闪烁问题 在safari中触摸事件的相应顺序如下: touchstart --> touchmove --> touchend --> click(300ms) 此时可试用以下样式取消click事件的默认样式来消除页面闪烁问题 *{ -webkit-tap-highlight-color:rgba(0,0,0,0); } (值得一提的是,300ms的延迟主要是用于判断用

  • 解决IOS开发空字符串的方法

    解决IOS开发空字符串的方法 实例代码: -(Boolean) isEmptyOrNull:(NSString *) str { if (!str) { // null object return true; }else if(str == Null){ return true; }else if([str isKindOfClass:[NSNull class]]){ return true; }else { NSString *trimedString = [str stringByTrim

  • 解决iOS UITextField 编辑时文本偏移问题

    1.在cell中添加UITextField,在编辑的时候总是出现文本偏移问题,编辑结束时回复正常,解决方式如下: (1)代码创建UITextField,并添加上去,设置textField的一些属性: - (UITextField *)textField{ if (_textField == nil) { _textField = [UITextField new]; _textField.borderStyle = UITextBorderStyleNone; _textField.conten

  • 使用scrollTop()解决IOS中输入法遮挡输入框问题

    经过测试,发现有的IOS浏览器上输入法会弹出遮挡输入框,网上很多都是介绍用以下方法 (function() { $('input').on('click', function () { var target = this; // 使用定时器是为了让输入框上滑时更加自然 setTimeout(function(){ target.scrollIntoView(true); },100); }); 但是由于本人对scrollIntoView的理解不够一直没有解决问题,后来用相同的思路使用scroll

  • iOS 验证码按钮倒计时功能

    在app 注册或者登录 需要验证码的地方.为了避免短时间内刷验证码.往往会加上一层验证. 倒计时结束后.可以重新获取! 代码实现如下: // _CountdownTime 倒计时总时间: //_timer 定时器 - (void)startTime:(UIButton *)VerificationCodeButton { __block NSInteger timeout = [_CountdownTime integerValue]; dispatch_queue_t queue = disp

随机推荐