PinCodeView 0.3.0

PinCodeView 0.3.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2018年4月
SPM支持SPM

Ariel Pollack维护。



  • 作者:
  • Ariel Pollack

PinCodeView

PinCodeView是一个用于数字和字母数字的即插即用密码输入字段。

PinCodeView

示例

Appetize.io上查看PinCodeView的实际运用

安装

CocoaPods

CocoaPods是Objective-C的依赖管理器,它自动并简化了在项目中使用如PinCodeView等第三方库的过程。

首先,将以下行添加到您的Podfile

pod 'PinCodeView'

然后,运行以下行以将其集成到您的项目中。

pod install

手动操作

克隆仓库,并将Source/目录内的文件拖拽到您的项目中。

用法

您可以从界面构建器中选择PinCodeView,或者通过代码添加。

在任何情况下,您都必须提供一些数据,以便视图知道如何呈现。

添加视图自身

let pinView = PinCodeView(numberOfDigits: 6, textType: .numbers, groupingSize: 3, itemSpacing: 7)
pinView.delegate = self
pinView.digitViewInit = PinCodeDigitSquareView.init
self.view.addSubview(pinView)
// set your frame / constraints as you wish

实现代理方法(可选)

 func pinCodeView(_ view: PinCodeView, didSubmitPinCode code: String, isValidCallback callback: @escaping (Bool) -> Void) {
    
    // here you can show your progress or do any UI action

    API.verifyCode(code, completion: { isValid in
        callback(isValid)
    })
 }
    
func pinCodeView(_ view: PinCodeView, didInsertText text: String) {
    // that's the place for hiding error views, etc
}

定制!

视图的实现允许对单数字视图进行定制。

因此,您只需实现自己的视图,使其符合PinCodeDigitView规范。

public protocol PinCodeDigitView: class {
    init()
    var digit: String? { get set }
    var state: PinCodeDigitViewState! { get set }
    func configure(withState: PinCodeDigitViewState)
    
    // hackish way to constraint to UIView only
    var view: UIView { get }
}

(注意:如果您有更好的方法让它成为UIView子类的类,请提交一个pull request)

许可证

PinCodeView是在MIT许可证的条款和条件下分发的。

鸣谢

PinCodeView由Ariel Pollack提供,并为Dapulse的iOS应用程序开发。

如果您在其项目中使用了PinCodeView,将非常感谢提供归属感。