这两天看了一下手势密码,写了一个简单的Dome:GesturePassword,有什么问题欢迎指正。
简单说一下构思:
? ? 整体是通过触摸手势(touchBegin、touchMove、TouchEnd)来完成的,通过NSUserDefaults来存储手势,手势存储是通过每一个封装按钮点的tag值的先后顺序排列存储。
1、首先对每个点进行一个封装,我这里用UIButton按钮来完成,设置默认状态的图片和选中状态的图片,切记把按钮的交互手势关掉,否则会影响到触摸手势。
2、开始触摸的时候,判断一下触摸手势点的位置是不是在某一个点上,如果在去获取这个点的UIButton对象存储到数组里边并且将UIButton的selected 设置为 YES。
3、开始移动的时候,先去判断一下数组里边是不是已经存储了至少一个点,如果没有,说明开始触摸的点不对不进行任何操作;如果有进行下一步的操作,去判断移动过程中是否经过了某一个点,如果经过了去获取这个点的UIButton对象添加到数组中。然后去调用drawRect设置线段链接。这里要注意一下为了防止多次添加,要先判断一下UIButton的selected是否为NO。
4、触摸结束之后,记录数组经过的点,将他们的tag值按顺序排列设置成字符串,用户存储和判断。