一個輕量級、面對協議編程、高度自定義的 圖形解鎖/手勢解鎖 / 手勢密碼 / 圖案密碼 / 九宮格密碼git
相比於其餘同類三方庫有哪些優點:github
說明 | Gif |
---|---|
箭頭 | |
中間點自動鏈接 | |
小灰點 | |
小白點 | |
熒光藍 | |
fill白色 | |
陰影 | |
圖片 | |
旋轉(雞你太美) | |
破折線 | |
圖片鏈接線(箭頭) | |
圖片鏈接線(小魚兒) | |
設置密碼 | |
修改密碼 | |
驗證密碼 |
PatternLockViewConfig
LockConfig
LockConfig
是默認提供的類,實現了PatternLockViewConfig
協議。能夠直接經過LockConfig
的屬性進行自定義。函數式編程
let config = LockConfig()
config.gridSize = CGSize(width: 70, height: 70)
config.matrix = Matrix(row: 3, column: 3)
config.errorDisplayDuration = 1
複製代碼
PatternLockViewConfig
協議的類該方式能夠將全部配置細節彙集到自定義類的內部,外部只須要初始化自定義類便可。詳情請參考demo裏面的ArrowConfig
類。這樣有個好處就是,多個地方都須要用到一樣配置的時候,只須要初始化相同的類,而不用像使用LockConfig
那樣,複製屬性配置代碼。函數
struct ArrowConfig: PatternLockViewConfig {
var matrix: Matrix = Matrix(row: 3, column: 3)
var gridSize: CGSize = CGSize(width: 70, height: 70)
var connectLine: ConnectLine?
var autoMediumGridsConnect: Bool = false
//其餘屬性配置!只是示例,就不顯示全部配置項,影響文檔長度
}
複製代碼
GridView
config.initGridClosure = {(matrix) -> PatternLockGrid in
let gridView = GridView()
let outerStrokeLineWidthStatus = GridPropertyStatus<CGFloat>.init(normal: 1, connect: 2, error: 2)
let outerStrokeColorStatus = GridPropertyStatus<UIColor>(normal: tintColor, connect: tintColor, error: .red)
gridView.outerRoundConfig = RoundConfig(radius: 33, lineWidthStatus: outerStrokeLineWidthStatus, lineColorStatus: outerStrokeColorStatus, fillColorStatus: nil)
let innerFillColorStatus = GridPropertyStatus<UIColor>(normal: nil, connect: tintColor, error: .red)
gridView.innerRoundConfig = RoundConfig(radius: 10, lineWidthStatus: nil, lineColorStatus: nil, fillColorStatus: innerFillColorStatus)
return gridView
}
複製代碼
ConnectLine
let lineView = ConnectLineView()
lineView.lineColorStatus = .init(normal: tintColor, error: .red)
lineView.triangleColorStatus = .init(normal: tintColor, error: .red)
lineView.isTriangleHidden = false
lineView.lineWidth = 3
config.connectLine = lineView
複製代碼
PatternLockView
lockView = PatternLockView(config: config)
lockView.delegate = self
view.addSubview(lockView)
複製代碼
徹底聽從面對協議開發。 PatternLockView
依賴於配置協議PatternLockViewConfig
。 配置協議配置網格協議PatternLockGrid
和鏈接線協議ConnectLine
。學習