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
在下面实现代理函数
最后实现了:手势截屏的功能
到此,大部分代码就是这样,最后演示一下效果: