Swift--实现指纹解锁

最近为了熟悉swift,写了一个小demo,记录一下swift中遇到的坑和常用的问题

项目结果在最后:

1.搭建环境

在storyboard中,创建3个btn,设置密码、验证密码、修改密码


2.创建手势显示DrawController,使用xib,搭建界面

2.1 创建2个lab,第一个lab显示,不同的type用;第二个lab,根据type提示内容.

2.2 在视图中,添加一个空白View,之后显示手势视图,命名为DrawView

2.3 在DrawController下面,创建忘记密码Btn,用作返回

并在文件中,创建全局变量:


3.返回到ViewController中,创建btn的点击事件,用tag标示,使用摸态视图

注意: 在swift中,默认不会关联xib,需要开发人员手动设置

用代码实现相关的内容:

3.1 在viewController中的内容已经处理完成。


4.回到DrawViewController中

4.1添加两个全局变量

//根据tag值进行不同加载

var whTag =0

var updateTag =0//修改用到

4.2 在viewWillAppear中,根据tag实现lab的显示

5.在自定义显示手势的DrawView中,需要创建内容来显示手势按钮,用代码实现,记住在DrawController.xib中绑定DrawView

5.1 swift中默认是不会有值得,需要创建值

var btnSelectArr:(NSMutableArray) = [] //保存获取到的按钮集合

5.2 swift中必须要实现的方法,在这个里面才能调用函数等内容

required init?(coder aDecoder:NSCoder) {

super.init(coder: aDecoder)

crateBtn()  } 

5.3 创建手势btn,还是比较简单的

改函数,需要放到上面调用.


5.4 下面做手势的功能

在做手势前,需要了解,触摸的三个步骤,touchesBegan,touchesMoved,touchesEnded,

首先,我们要获取触摸点,得到触摸点之后,在通过CGPoint,获取到btn,所以要创建两个函数

第一个:

第二个:

首先在触摸开始中:

通过函数获取到btn,并判断有没有,在存到集合当中

在触摸移动的过程中:

同样通过函数获取到btn,判断btn 的选中状态和是否为空,存到集合中


在触摸结束时:

需要创建一个delegate,使用str把所选择的btn,拼接到str中,所以参数为,当前对象,和路径path,最后会在DrawController中调用

6.处理好手势后,我们就需要把手势给绘制出来

创建一个函数处理btn状态

7.回到DrawViewController,添加DrawView的代理协议,跟OC不同的是,swift添加代理后,必须实现函数,不然会报错

在UIViewControllerh后,添加代理drawViewDelegate

在下面实现代理函数

最后实现了:手势截屏的功能


到此,大部分代码就是这样,最后演示一下效果:

推荐阅读更多精彩内容