这篇文章主要介绍了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;
}运行之后,效果如下动图所示:

替换为项目的输入框之后,发现依旧有偏左的问题,此时基本可以验证我们封装的输入框没有太大问题,应该还是输入框的某些属性造成的,于是对写的这backgroundColor,placeholder,delegate,textContentType,keyboardType这五个属性进行逐步排查,首先排除了backgroundColor,placeholder,delegate,textContentType四个属性,发现有无均存在问题,那么此时可以断定问题肯定存在**keyboardType**属性上面了。
2.排查**keyboardType**属性
扎一看**keyboardType**属性也没有什么问题,那么我换个枚举值试试吧,此时我把属性
_verifyV.keyboardType = UIKeyboardTypeASCIICapableNumberPad;换成我们常用的数字键盘
_verifyV.keyboardType = UIKeyboardTypeNumberPad;再次测试,发现居然是没有偏左的问题,那么把项目中涉及到UIKeyboardTypeASCIICapableNumberPad属性的统一替换掉,再次跑项目,发现居然是正常了。效果如下所示:

小结:


虽然问题得以解决,但是我查阅各方资料,包括官方文档,就没有说 UIKeyboardTypeASCIICapableNumberPad属性会造成验证码偏左问题,不知道是不是苹果bug,希望有看到类似的资料留言祝我解惑。
到此这篇关于iOS验证码显示在左边问题的文章就介绍到这了,更多相关iOS验证码内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:解决iOS验证码显示在左边问题
基础教程推荐
- Android多返回栈技术 2023-04-15
- Android中的webview监听每次URL变化实例 2023-01-23
- Android开发使用RecyclerView添加点击事件实例详解 2023-06-15
- iOS开发教程之XLForm的基本使用方法 2023-05-01
- Flutter手势密码的实现示例(附demo) 2023-04-11
- android studio按钮监听的5种方法实例详解 2023-01-12
- Flutter绘图组件之CustomPaint使用详解 2023-05-12
- 解决Android Studio突然不显示logcat日志的问题 2023-02-04
- IOS应用内跳转系统设置相关界面的方法 2022-11-20
- IOS 播放系统提示音使用总结(AudioToolbox) 2023-03-01
