Swift Extension UITextField(源码)
2026/9/16 13:35:31 网站建设 项目流程

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。

Swift Extension UITextField(源码)

文章目录

  • 效果
  • 请输入用户名
  • 手机号输入框
  • 邮箱输入框
  • 验证码输入框
  • 价格输入框
  • 普通数字输入框
  • 普通使用

效果

请输入用户名

lazy private var usernameTextField: TextField={lettextField=TextField()textField.placeholder="请输入用户名"textField.font=UIFont.systemFont(ofSize:15)textField.textColor=.black textField.backgroundColor=UIColor(white:0.96, alpha:1)textField.layer.cornerRadius=8// 最大输入长度 // 用途:限制用户最多只能输入20个字符 textField.maxLength=20// 正则校验规则 // 用途:过滤非法字符,同时进行输入内容合法性校验 textField.validationPatterns=[.unlawful]// 输入内容发生变化时,可以通过 observableText 获取最新内容 textField.observableText.bind{textinprint("用户名:\(text)")}// 占位文字颜色和字体 // 用途:自定义 placeholder 的显示样式 textField.setCustomPlaceholder(color: .gray, font: UIFont.systemFont(ofSize:15))returntextField}()

手机号输入框

/// 手机号输入框 /// 用途:输入中国大陆手机号码 lazy private var phoneTextField: TextField={lettextField=TextField()textField.placeholder="请输入手机号"textField.font=UIFont.systemFont(ofSize:15)textField.textColor=.black textField.backgroundColor=UIColor(white:0.96, alpha:1)textField.layer.cornerRadius=8// 最大长度 // 用途:手机号最多输入11位 textField.maxLength=11// 手机号正则 // 用途:校验输入内容是否符合 1XXXXXXXXXX 的手机号格式 textField.validationPatterns=[.phone]// 键盘类型 // 用途:弹出数字键盘,方便输入手机号 textField.keyboardType=.phonePad // 监听输入内容 // 用途:输入手机号时实时获取文本 textField.observableText.bind{textinprint("手机号:\(text)")}returntextField}()

邮箱输入框

/// 邮箱输入框 /// 用途:输入并校验邮箱地址 lazy private var emailTextField: TextField={lettextField=TextField()textField.placeholder="请输入邮箱"textField.font=UIFont.systemFont(ofSize:15)textField.textColor=.black textField.backgroundColor=UIColor(white:0.96, alpha:1)textField.layer.cornerRadius=8// 最大长度 // 用途:限制邮箱输入长度 textField.maxLength=50// 邮箱正则 // 用途:校验输入内容是否符合邮箱格式 textField.validationPatterns=[.email]// 键盘类型 // 用途:弹出适合邮箱输入的键盘 textField.keyboardType=.emailAddressreturntextField}()

验证码输入框

/// 验证码输入框 /// 用途:输入固定长度的数字验证码 lazy private var codeTextField: TextField={lettextField=TextField()textField.placeholder="请输入验证码"textField.font=UIFont.systemFont(ofSize:15)textField.textColor=.black textField.backgroundColor=UIColor(white:0.96, alpha:1)textField.layer.cornerRadius=8// 固定数字长度 // 用途:例如验证码固定为6位数字 textField.maxLength=6// number(6)// 用途:要求内容必须是6位数字 textField.validationPatterns=[.number(6)]// 数字键盘 // 用途:验证码只需要输入数字 textField.keyboardType=.numberPadreturntextField}()

价格输入框

/// 价格输入框 /// 用途:输入价格,例如10、10.5、10.99 lazy private var priceTextField: TextField={lettextField=TextField()textField.placeholder="请输入价格"textField.font=UIFont.systemFont(ofSize:15)textField.textColor=.black textField.backgroundColor=UIColor(white:0.96, alpha:1)textField.layer.cornerRadius=8// 价格正则 // 用途:允许整数或者最多两位小数 textField.validationPatterns=[.price]// 数字 + 小数点键盘 // 用途:方便输入价格 textField.keyboardType=.decimalPadreturntextField}()

普通数字输入框

/// 普通数字输入框 /// 用途:输入指定范围长度的数字 lazy private var numberTextField: TextField={lettextField=TextField()textField.placeholder="请输入数字"textField.font=UIFont.systemFont(ofSize:15)textField.textColor=.black textField.backgroundColor=UIColor(white:0.96, alpha:1)textField.layer.cornerRadius=8// range(1,6)// 用途:数字长度必须在1~6 位之间 textField.validationPatterns=[.range(1,6)]// 最大输入长度 // 用途:从输入层面限制最多6位 textField.maxLength=6textField.keyboardType=.numberPadreturntextField}()

普通使用

import UIKit import SnapKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let textField = UITextField() textField.placeholder = "请输入用户名" textField.placeHolderColor = .gray//设置占位文字颜色 textField.placeholderFont = UIFont.systemFont(ofSize: 14)//设置占位文字字体 textField.leftPadding = 30//设置左边间距 textField.leftIcon = UIImage(named: "圣诞果")!//设置左边间距 textField.rightPadding = 30//设置右边间距 textField.rightIcon = UIImage(named: "圣诞果")! view.addSubview(textField) textField.layer.borderColor = UIColor.gray.cgColor textField.layer.borderWidth = 1.0 textField.snp.makeConstraints { make in make.width.equalTo(200) make.height.equalTo(40) make.center.equalToSuperview() } } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询