Giter Club home page Giter Club logo

corelock's Introduction

Charlin出框架的目标:简单、易用、实用、高度封装、绝对解耦!



CoreLock(关注信息公告牌

高仿支付宝解锁!

注:本框架是高仿支付宝,并集成了所有功能,并非一个简单的解锁界面展示。个人制作用时1周多,打造解锁终结者框架。



示例截图

image


框架特性:

.ios版本兼容ios 7.0及以上.
.扁平化设计,全部使用QuartzCore引擎绘制,没有使用任何图片素材
.完全解耦,不需要继承,不需要定义成员属性,类方法直接搞定一切。
.自动管理生命周期,你只需要使用即可,不需要管理控制器的生命周期。
block封装,不需要任何代理
.完美屏幕适配,支持所有ios设备。
.做了比较多的性能优化,最大必的提高性能。
.完善的错误处理机制。



Charlin想说:

此版本是全部的QuartzCore绘制,整个框架使用了几乎所有的QuartzCore技术,如果你有兴趣,可以看下源代码, 算是一个比较不错的QuartzCore实战教程。

对于本框架,有以下技术点和大家分享:
1.主界面使用Xib定制,如果你需要添加控件,非常方便,比如支付宝顶部有用户头像,我这里没有,所以就没加,如果你需要加,直接在xib添加即可。
2.本地数据存储使用沙盒存储。
3.无任何代理设计,全程使用block解决,引用老刘的一句话,目前代理设计模式正在被块代码所逐步取代。
4.解锁线条绘制使用的是比较复杂的奇偶裁剪技术。有兴趣可以看看苹果官方示例。
5.关于QuartzCore,使用到的技术除了基本的绘制以外,还使用了图形上下文栈,矩阵变换,刷新图层等。
6.本框架考虑了添加密码,修改密码,验证密码,忘记密码等支付宝几乎全部的功能,并且使用简单。



使用示例

/*
 *  设置密码
 */
- (IBAction)setPwd:(id)sender {
    
    
    BOOL hasPwd = [CLLockVC hasPwd];
    hasPwd = NO;
    if(hasPwd){
        
        NSLog(@"已经设置过密码了,你可以验证或者修改密码");
    }else{
        
        [CLLockVC showSettingLockVCInVC:self successBlock:^(CLLockVC *lockVC, NSString *pwd) {
            
            NSLog(@"密码设置成功");
            [lockVC dismiss:1.0f];
        }];
    }
}

/*
 *  验证密码
 */
- (IBAction)verifyPwd:(id)sender {
    
    BOOL hasPwd = [CLLockVC hasPwd];
    
    if(!hasPwd){
        
        NSLog(@"你还没有设置密码,请先设置密码");
    }else {
        
        [CLLockVC showVerifyLockVCInVC:self forgetPwdBlock:^{
            NSLog(@"忘记密码");
        } successBlock:^(CLLockVC *lockVC, NSString *pwd) {
            NSLog(@"密码正确");
            [lockVC dismiss:1.0f];
        }];
    }
}


/*
 *  修改密码
 */
- (IBAction)modifyPwd:(id)sender {
    
    BOOL hasPwd = [CLLockVC hasPwd];
    
    if(!hasPwd){
        
        NSLog(@"你还没有设置密码,请先设置密码");
        
    }else {
        
        [CLLockVC showModifyLockVCInVC:self successBlock:^(CLLockVC *lockVC, NSString *pwd) {
            
            [lockVC dismiss:.5f];
        }];
    }

}



corelock's People

Contributors

charlinfeng 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  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

corelock's Issues

CALayer 的 -shake

kfa.values = @[@0,@(-s),@(0),@(s),@(0),@(-s),@(0),@(s),@(0)];
数组开头要加个 @0, 否则动画速度不一致

Could not find file 1.png

编译时,Xcode 7 报错(貌似不影响运行)

While reading /Users/xxx/Development/GitHub/CoreLock/CoreLock/1.png pngcrush caught libpng error:
Not a PNG file..

Could not find file: /Users/xxx/Library/Developer/Xcode/DerivedData/CoreLock-atmjvqzpnuxpdfdfodoemkzmkprc/Build/Products/Debug-iphoneos/CoreLock.app/1.png
Command /Applications/Xcode.app/Contents/Developer/usr/bin/copypng emitted errors but did not return a nonzero exit code to indicate failure

关于密码屏会延时显示出来的问题

我是把检查写在applicationDidBecomeActive这里的
现象如下:
设置完密码后,APP从后台切换到前台时,会有极短的时间(不到1秒吧),会显示出来app本身的页面,然后密码屏才会显示出来要求解锁.

是我放错地方了?还是用法错了??
即然加了这东西,合理显示应该是APP打开时,密码屏就显示出来的吧??

showVerifyLockVCInVC: 中右下修改密码存在BUG

重现方法:
1、applicationDidEnterBackground:中写入showVerifyLockVCInVC:
2、按下HOME,在回demo,出现界面后,点击右下“修改密码”
3、此事出现“请输入旧密码”,这时候输入“正确密码"
4、提示“请滑动设置新密码”,此时只操作一次,提示校验的时候,点击“返回”。
5、返回后showVerifyLockVCInVC: 变成了:请滑动设置新密码

【备注:偶现的】

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.