欢迎来到代码驿站!

iOS代码

当前位置:首页 > 移动开发 > iOS代码

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

时间:2022-09-21 08:28:18|栏目: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代码

下一篇:iOS移动端(H5)alert/confirm提示信息去除网址(URL)

本文标题:解决iOS验证码显示在左边问题

本文地址:http://www.codeinn.net/misctech/214277.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有