DPOTPView
可定制的 OTP 视图和密码视图
使用 CocoaPods 安装
CocoaPods 是 Objective-C & Swift 的依赖管理器。您可以使用以下命令安装它:
$ gem install cocoapods
Podfile
要使用 CocoaPods 将 DPOTPView 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
use_frameworks!
pod 'DPOTPView'
end
然后,运行以下命令:
$ pod install
使用 Carthage 安装
Carthage 是一个去中心化的依赖管理器,它为您构建依赖并提供二进制框架。
您可以使用以下命令使用 Homebrew 安装 Carthage:
$ brew update
$ brew install carthage
要使用 Carthage 将 DPOTPView
集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "Datt1994/DPOTPView"
运行 carthage
来构建框架并将框架(DPOTPView.framework
)拖入您的 Xcode 项目中。
注意:在接口构建器中,IBDesignables 和 IBInspectables 不会工作。
解决方案:创建 DPOTPView 的 IBDesignable 子类,在接口构建器中使用该子类作为自定义类。
@IBDesignable
class OTPView : DPOTPView {}
使用Swift Package Manager进行安装
Swift Package Manager 是一个用于自动化分发Swift代码的工具,并且集成到 swift
编译器中。
要将库添加为包依赖项到您的Xcode项目中,选择文件 > Swift Packages > 添加包依赖项,并输入其存储库URL https://github.com/Datt1994/DPOTPView.git
手动添加
下载项目并将 DPOTPView.swift
文件粘贴到您的项目中
如何使用
代码
代码配置
let txtOTPView = DPOTPView(frame: CGRect(x: (self.view.frame.width - 250)/2, y: txtDPOTPView.frame.origin.y + 50, width: 250, height: 60))
txtOTPView.count = 5
txtOTPView.spacing = 10
txtOTPView.fontTextField = UIFont(name: "HelveticaNeue-Bold", size: CGFloat(25.0))!
txtOTPView.dismissOnLastEntry = true
txtOTPView.borderColorTextField = .black
txtOTPView.selectedBorderColorTextField = .blue
txtOTPView.borderWidthTextField = 2
txtOTPView.backGroundColorTextField = .lightGray
txtOTPView.cornerRadiusTextField = 8
txtOTPView.isCursorHidden = true
//txtOTPView.isSecureTextEntry = true
//txtOTPView.isBottomLineTextField = true
//txtOTPView.isCircleTextField = true
view.addSubview(txtOTPView)
用法
txtDPOTPView.text = "1234" // set text
print(txtDPOTPView.text ?? "") // get text
txtDPOTPView.validate() // validate all text entry
_ = txtDPOTPView.becomeFirstResponder()
委托方法
extension ViewController : DPOTPViewDelegate {
func dpOTPViewAddText(_ text: String, at position: Int) {
print("addText:- " + text + " at:- \(position)" )
}
func dpOTPViewRemoveText(_ text: String, at position: Int) {
print("removeText:- " + text + " at:- \(position)" )
}
func dpOTPViewChangePositionAt(_ position: Int) {
print("at:-\(position)")
}
func dpOTPViewBecomeFirstResponder() {
}
func dpOTPViewResignFirstResponder() {
}
}