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
,将非常感谢提供归属感。