美文网首页高级UIiOS开发骚操作iOS Developer
【福利】一个效果丰富、高度自定义的手势密码、图形密码库

【福利】一个效果丰富、高度自定义的手势密码、图形密码库

作者: 开源者联盟 | 来源:发表于2019-07-02 10:32 被阅读6次

一个轻量级、面对协议编程、高度自定义的 图形解锁/手势解锁 / 手势密码 / 图案密码 / 九宫格密码

相比于其他同类三方库有哪些优势:

  • 完全面对协议编程,支持高度自定义网格视图连接线视图,轻松实现各类不同需求;
  • 默认支持多种配置效果,支持大部分主流效果,引入就可以搞定需求;
  • 源码采用Swift5编写,通过泛型、枚举、函数式编程优化代码,具有更高的学习价值;
  • 后期会持续迭代,不断添加主流效果;

Github地址

JXPatternLock

效果预览

说明 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

Github地址

JXPatternLock

相关文章

网友评论

    本文标题:【福利】一个效果丰富、高度自定义的手势密码、图形密码库

    本文链接:https://www.haomeiwen.com/subject/itzacctx.html