一个轻量级、面对协议编程、高度自定义的 图形解锁/手势解锁 / 手势密码 / 图案密码 / 九宫格密码
相比于其他同类三方库有哪些优势:
- 完全面对协议编程,支持高度自定义网格视图和连接线视图,轻松实现各类不同需求;
- 默认支持多种配置效果,支持大部分主流效果,引入就可以搞定需求;
- 源码采用Swift5编写,通过泛型、枚举、函数式编程优化代码,具有更高的学习价值;
- 后期会持续迭代,不断添加主流效果;
Github地址
效果预览
说明 | Gif |
---|---|
箭头 | image |
中间点自动连接 | image |
小灰点 | image |
小白点 | image |
荧光蓝 | image |
fill白色 | image |
阴影 | image |
图片 | image |
旋转(鸡你太美) | image |
破折线 | image |
图片连接线(箭头) | image |
图片连接线(小鱼儿) | image |
设置密码 | image |
修改密码 | image |
验证密码 | image |
要求
- iOS 9.0+
- Xcode 10.2.1+
- Swift 5.0
安装
手动
Clone代码,把Sources文件夹拖入项目,就可以使用了;
CocoaPods
target '<Your Target Name>' do
pod 'JXPatternLock'
end
先执行pod repo update
,再执行pod install
Carthage
在cartfile文件添加:
github "pujiaxin33/JXPatternLock"
然后执行carthage update --platform iOS
即可
使用
初始化LockConfig
let config = LockConfig()
config.gridSize = CGSize(width: 70, height: 70)
config.matrix = Matrix(row: 3, column: 3)
config.errorDisplayDuration = 1
配置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)
结构
image完全遵从面对协议开发。
PatternLockView
依赖于配置协议PatternLockViewConfig
。
配置协议配置网格协议PatternLockGrid
和连接线协议ConnectLine
。
网友评论