美文网首页高级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