美文网首页iOS点点滴滴
iOS swift 最好用的 手势密码 九宫格

iOS swift 最好用的 手势密码 九宫格

作者: 酷酷的程序员呀 | 来源:发表于2018-07-17 13:48 被阅读9次

    GPassword

    GPassword 是一个简单、高效、易用的手势密码库,基于 CAShapeLayer 和 UIBezeierPath。

    重写手势密码(九宫格)的缘由

    • Swift 版现在 Github 上都比较难用,依据这些难用的改造的也不怎么好用~
    • 功能不大,但是涉及的东西挺有意思,我重写复习了下三角函数和反三角函数
    • 原有库使用重写 drawRect 在绘制时会造成内存暴涨
    • 原有库视图层级复杂造成额外不必要的代码逻辑
    • 原有库代码耦合严重、难于扩展
    • 封装手势密码私有库时,最后暴露出来的不应该是一个控制器,而应该是视图,要不然做界面定制将会很难做

    特性

    • 使用代理将手势密码图绘制完成的密码传出
    • 使用 CAShapeLayer 和 UIBezeierPath,拥有更好的性能
    • 支持定义 3*34*4...的矩阵
    • 支持多种正常和选中的样式
    • 使用 KeyChain 和 UserDefaults 来存储相关信息

    部分截图展示

    <figure> image

    <figcaption></figcaption>

    </figure>

    <figure> image

    <figcaption></figcaption>

    </figure>

    <figure> image

    <figcaption></figcaption>

    </figure>

    要求

    • iOS 8.0+
    • Xcode 9.0+
    • Swift 4.0+

    安装

    CocoaPods

    pod "GPassword"
    复制代码
    

    或者直接拖拽 Source 文件夹进入你的项目。

    使用

    定义统一的样式,你可以调用:

    GPassword.config { (options) in
        options.connectLineStart = .border
        options.normalstyle = .innerFill
        options.isDrawTriangle = true
        options.matrixNum = 3
    }
    复制代码
    

    然后可以直接用这个文件 Box.swift 直接作为手势密码视图或者将它添加到控制器上使用

    fileprivate lazy var passwordBox: Box = {
        let box = Box(frame: CGRect(x: 50, y: 200, width: GWidth - 2 * 50, height: 400))
        box.delegate = self
        return box
    }()
    复制代码
    

    然后需要做的就是实现两个代理方法,具体的业务逻辑也应该在里面实现:

    1. sendTouchPoint 可以从内部发出完整的手势密码
    2. touchesEnded 根据类型(设置/确认/修改)处理具体的业务逻辑
    extension PasswordViewController: EventDelegate {
        func sendTouchPoint(with tag: String) {
            password += tag
            // get complete password
        }
    
        func touchesEnded() {
            // write business logics according to type
        }
    }
    复制代码
    

    开发人可以根据自己的业务逻辑实现具体的细节,在 demo 里我已经写了一个简单的例子可以直接使用参考 PasswordViewController.swift,根据自己的情况进行调整。

    文章来源网络 如有侵权请联系小编删除~

    作为ios开发者学习环境很重要,这是小编 iOS学习交流群 786735421,水群勿扰 !!!水群勿扰!!!内有iOS企业案例学习资料 面试资料和 零基础入门教程 ,欢迎各位小伙伴入群学习交流。

    相关文章

      网友评论

        本文标题:iOS swift 最好用的 手势密码 九宫格

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