GPassword 是一個簡單、高效、易用的手勢密碼庫
,基於 CAShapeLayer 和 UIBezeierPath。git
三角函數和反三角函數
私有庫
時,最後暴露出來的不該該是一個控制器,而應該是視圖,要否則作界面定製將會很難作3*3
、4*4
...的矩陣CocoaPodsgithub
pod "GPassword"
複製代碼
或者直接拖拽 Source
文件夾進入你的項目。swift
定義統一的樣式,你能夠調用:函數
GPassword.config { (options) in
options.connectLineStart = .border
options.normalstyle = .innerFill
options.isDrawTriangle = true
options.matrixNum = 3
}
複製代碼
而後能夠直接用這個文件 Box.swift
直接做爲手勢密碼
視圖或者將它添加到控制器
上使用性能
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
}()
複製代碼
而後須要作的就是實現兩個代理方法,具體的業務邏輯也應該在裏面實現:ui
sendTouchPoint
能夠從內部發出完整的手勢密碼touchesEnded
根據類型(設置/確認/修改)處理具體的業務邏輯extension PasswordViewController: EventDelegate {
func sendTouchPoint(with tag: String) {
password += tag
// get complete password
}
func touchesEnded() {
// write business logics according to type
}
}
複製代碼
開發人能夠根據本身的業務邏輯實現具體的細節,在 demo 裏我已經寫了一個簡單的例子能夠直接使用參考 PasswordViewController.swift
,根據本身的狀況進行調整。spa