FasterVerificationCode 0.4.1

FasterVerificationCode 0.4.1

Antonino Musolino 维护。



FasterVerificationCode

一个高度可定制的快速验证码视图

Version SPM GitHub license Platform @Ninomusolino

Icon

FasterVerificationCode 是一个开源的完全可定制的 输入视图,旨在通过邮件或电话更轻松、更快地将您的验证码输入到用户中。

功能

  • 直接将其安装到您的 xib 或 storyboard 中。
  • 支持 粘贴 操作。
  • 错误处理。
  • 提供完全可定制的 Xlib UI。

系统要求

iOS 10.0 或以上

安装

作为 CocoaPods 依赖项

请将以下内容添加到您的 Podfile 中

pod 'FasterVerificationCode'

Swift 包管理器

Swift 包管理器是一个用于自动化分发 Swift 代码的工具,并且集成到 Xcode 中。

一旦设置了您的 Swift 包,将 FasterVerificationCode 添加为依赖项非常简单。您只需将其添加到 Package.swift 文件的 dependencies 值。

dependencies: [
    .package(url: "https://github.com/posix88/FasterVerificationCode", .upToNextMajor(from: "0.4.1"))
]

手动安装

FasterVerificationCode 所需的所有源文件和资源文件都位于 FasterVerificationCode/Classes 中。

示例

使用 FasterVerificationCode 非常简单直接。在您的 ViewController 中创建一个新的 UIView,并将 VerificationCodeView 插入到自定义类的字段中。

您可以通过检查标签来自定义外观,并添加约束。

别忘了

  • 添加宽度约束;
  • 将其声明为占位符(视图将在运行时根据标签的尺寸进行调整)。

有关完整的工作示例,请查看仓库并在项目根目录中运行 pod install

基本实现

@IBOutlet weak var verificationCodeView: VerificationCodeView!

override func viewDidLoad() {
    super.viewDidLoad()
    verificationCodeView.setLabelNumber(6)
    verificationCodeView.delegate = self
}

extension YourViewController: VerificationCodeViewDelegate {

    func verificationCodeInserted(_ text: String, isComplete: Bool) { 
    ...
    }
}

VerificationCodeViewDelegate

此代理处理验证码的插入,通过以下两个方法:

verificationCodeInserted

func verificationCodeInserted(_ text: String, isComplete: Bool)

此方法为必填项,每次调用文本框的 textFieldShouldEndEditing 方法时都会被调用。它提供了当前文本,并显示文本是否已完整插入。

您可以检查插入的代码的正确性,并向用户展示视觉反馈。

    if text == "123456" {
        .....
    } else {
        // The inserted code is wrong
        verificationCodeView.showError = true
    }

verificationCodeChanged (可选)

@objc optional func verificationCodeChanged()

此方法为可选方法,仅在用户删除字符时才会被调用。仅在您对错误处理感兴趣并希望将边框颜色重置为默认颜色时才需要实现此方法。

    func verificationCodeChanged() {
        verificationCodeView.showError = false
    }

贡献

  • 如果您需要帮助或想提出一个一般性问题,请创建一个 issue。
  • 如果您发现了错误,请创建一个 issue。
  • 如果您有一个功能请求,请创建一个 issue。
  • 如果您想贡献,请提交 pull request。

致谢

由 Milan 打造❤️由 Antonino Musolino 制作。