内容简介:一个轻量级、面对协议编程、高度自定义的 图形解锁/手势解锁 / 手势密码 / 图案密码 / 九宫格密码相比于其他同类三方库有哪些优势:
一个轻量级、面对协议编程、高度自定义的 图形解锁/手势解锁 / 手势密码 / 图案密码 / 九宫格密码
相比于其他同类三方库有哪些优势:
- 完全面对协议编程,支持高度自定义 网格视图 和 连接线视图 ,轻松实现各类不同需求;
- 默认支持多种配置效果,支持大部分主流效果,引入就可以搞定需求;
- 源码采用 Swift5 编写,通过泛型、枚举、函数式编程优化代码,具有更高的学习价值;
- 后期会持续迭代,不断添加主流效果;
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) 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Flutter 手势密码控件
- iOS swift 最好用的 手势密码 九宫格
- RhykeJS ——专为开启“实验室功能”的手势密码库
- TensorFlow 实现手势识别
- Flutter学习指南:交互、手势和动画
- iOS —— 触摸事件传递及响应与手势
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。