GithubHelp home page GithubHelp logo

huangboju / gesturepassword Goto Github PK

View Code? Open in Web Editor NEW
122.0 4.0 23.0 1.97 MB

GesturePassword 是一个Swift的手势密码库

License: MIT License

Objective-C 0.06% Swift 99.28% Ruby 0.66%
gesturepassword gesturepassword-swift

gesturepassword's Introduction

GesturePassword 是一个Swift的手势密码库

  • 采用底层CALayer实现
  • 业务逻辑和UI分离,可以高度定制
  • 支持中英文
  • 采用UserDefaults和Keychain两套密码缓存机制

Cocoapods

pod 'GesturePassword'

1.设置密码

Alt text

2.验证密码

Alt text

3.修改密码

Alt text

Usage

  1. 将Lock.swift文件拖入你的工程
  2. 使用二次封装的AppLock类自己调用设置密码修改密码验证密码
let AppLock = Lock.shared

class Lock {

    static let shared = Lock()

    private init() {
        // 在这里自定义你的UI
        LockCenter.passwordKeySuffix = "user1"

//        LockCenter.usingKeychain = true
//        LockCenter.lineWidth = 2
//        LockCenter.lineWarnColor = .blue
    }

    func set(controller: UIViewController) {
        if hasPassword {
            print("密码已设置")
            print("🍀🍀🍀 \(password) 🍀🍀🍀")
        } else {
            showSetPattern(in: controller).successHandle = {
                LockCenter.set($0)
            }
        }
    }

    func verify(controller: UIViewController) {
        guard hasPassword else {
            print("❌❌❌ 还没有设置密码 ❌❌❌")
            return
        }

        print("密码已设置")
        print("🍀🍀🍀 \(password) 🍀🍀🍀")
        showVerifyPattern(in: controller).successHandle {
            $0.dismiss()
        }.overTimesHandle {
            LockCenter.removePassword()
            $0.dismiss()
            assertionFailure("你必须做错误超限后的处理")
        }.forgetHandle {
            $0.dismiss()
            assertionFailure("忘记密码,请做相应处理")
        }
    }

    func modify(controller: UIViewController) {
        guard hasPassword else {
            print("❌❌❌ 还没有设置密码 ❌❌❌")
            return
        }

        print("密码已设置")
        print("🍀🍀🍀 \(password) 🍀🍀🍀")
        showModifyPattern(in: controller).forgetHandle { _ in

            }.overTimesHandle { _ in

            }.resetSuccessHandle {
                print("🍀🍀🍀 \($0) 🍀🍀🍀")
        }
    }

    var hasPassword: Bool {
        // 这里密码后缀可以自己传值,默认为上面设置的passwordKeySuffix
        return LockCenter.hasPassword()
    }

    var password: String {
        return LockCenter.password() ?? ""
    }

    func removePassword() {
        // 这里密码后缀可以自己传值,默认为上面设置的passwordKeySuffix
        LockCenter.removePassword()
    }
}

版本记录

gesturepassword's People

Contributors

huangboju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

gesturepassword's Issues

下个版本加keychain保存吧

谢谢你的开源,我直接拿来用,感觉棒棒哒.
下个版本加keychain保存吧
希望你一直更新下去.(下次语法更新我怕没得用了)

bug

remove密码后无法继续设置密码,remove密码后点击设置密码 在点击remove弹出设置密码

modify 改變不了

modify 改變手勢成功後 依然是舊的手勢 哥有空看一下 THX

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.