Simple gesture password in swift
GPassword
Simple gesture password in swift.
Features
- Use delegate for gesture view to pass password
- Use CAShapeLayer、UIBezeierPath to draw for good performance
- Support define 3*3、4*4... Matrix
- Support define many kinds of normal and selected style
- Use KeyChain and UserDefaults to save informations
    
Requirements
- iOS 8.0+
- Xcode 9.0+
- Swift 4.0+
Install
CocoaPods
pod "GPassword"
or you can drag Source folder into your project.
Usage
First custom UI style, here is what you need:
GPassword.config { (options) in
    options.connectLineStart = .border
    options.normalstyle = .innerFill
    options.isDrawTriangle = true
    options.matrixNum = 3
}
then you can use Box.swift or add it to a UIViewController
fileprivate lazy var passwordBox: Box = {
    let box = Box(frame: CGRect(x: 50, y: 200, width: GWidth - 2 * 50, height: 400))
    box.delegate = self
    return box
}()
then you need to achieve two delegate methods, you should write business logics in them, sendTouchPoint can send out complete password and touchesEnded can deal business logics according to type(setting/verify/modify)
extension PasswordViewController: EventDelegate {
    func sendTouchPoint(with tag: String) {
        password += tag
        // get complete password
    }
    
    func touchesEnded() {
        // write business logics according to type
    }
}
more informations you can see PasswordViewController.swift in demo project, I write an example.