【触摸案例-手势解锁案例-九宫格 Objective-C语言】

本文介绍了如何使用Objective-C实现手势解锁功能,特别是九宫格布局和按钮状态切换的细节。讲解了为何选择UIButton而非UIImageView,利用Button的不同状态实现不同图片切换。同时,讨论了在awakeFromNib和layoutSubviews方法中创建及布局按钮的时机,以及如何通过for循环和计算九宫格位置来设置按钮的frame。最后提到了在代码创建视图时,按钮创建的处理方式。
摘要由CSDN通过智能技术生成

一、手势解锁案例,九宫格,我们先来分析一下怎么实现:

通知

首先呢,我们先来运行一下,

通知

这一块儿,上面的这九个东西,肯定是要有一个九宫格的一个算法的问题,然后呢,上边的这九个小圆圈儿,这是什么东西,Button,为什么是Button,因为可以点,是吗,就因为这个?实际上,你用这个Button也可以,实际上,用UIImageView,实际上也能做,但是可能imageView做起来更麻烦一些,为什么,因为我们说,我这块儿,如果我用的是一个Button的话,我现在这一块儿,这是一张普通的图片,当我点击的时候,是另外一张图片,

通知

当我密码错误,撒手的时候,是第三张图片,

通知

我们说,Button,是有很多状态的,什么selected、highlighted、disabled、normal、这些状态,都是有的,所以你用Button,只需要给这个Button,把这三种图片,找三种样式,然后呢,设置一下这个图片,然后呢,再去切换这个按钮的状态,比如说,

1)这是Highlighted状态:Highlighted == YES;

通知

2)这是Disabled状态:abled == NO;

通知

还有一个Selected状态:Selected == YES,

只要切换它这些属性,它就能够给你去变图片,假如说你用imageView的话,你可能还得去换图片,我们用Button,只需要再去改状态就可以了,设置一套图片,改状态就可以了,所以用Button实际上更方便一些,

但是ImageView,实际上,也可以去做,

2.当我现在在这一块儿,点击的时候,

通知

我会改变它的一个状态,那么,这个时候,我点击另外一个按钮,

通知

那这个按钮就会去变,那么,首先,我们这个里边儿,实际上有一个,就是你,touchesBegan:触摸的那个位置,然后,根据你那个位置,来去判断我是哪一个按钮去变化,这个里边儿有一个判断的过程啊,就是你点击的那个位置,那个point,是在我哪一个按钮的frame里边,我就让这个按钮亮起来,

3.我点击它,我现在再往右滑,连线的时候,

通知

只要我经过一个按钮,这个按钮就又会变成高亮起来,

通知

所以,这个里边儿,肯定还是有touchesMoved:存在,一定是有touchesMoved:方法的,

4.然后呢,还有,就是这个连线,

这个连线,实际上,是用drawRect:画出来的,包括,还有一个点,就是你在这个鼠标,移动到,

通知

移动到空白的时候,这块儿会多出来一个小线头儿,这个东西,又是怎么做的,然后呢,这些东西啊,我们都会去讲,

5.这是一个,大体的一个需求吧,然后,还有就是密码正确,和,密码错误,的时候,我们也会判断一下密码,如果你是密码正确的时候,我一撒手,应该跳转,

通知

如果是密码错误的时候,

通知

我应该,就是一个红色的一个提示,

然后,密码正确,怎么着去生成密码,这是我们要讲的,这里边还有一个点,就是,你横着连,从左往右横着连,和你反过来连,从右往左横着连,这个密码是不一样的,

没错儿吧,这一点啊,也要知道啊,

到时候我们怎么着去生成密码,再去来说一下,好,我们一个一个来做,这里边还有一个,控制器的背景图片,我们到时候来讲,怎么着设置控制器的背景图片,需求说完了以后,我们先简单的把它,图片设置一下,然后把九宫格的布局做一下,我们先来做这两步啊,

二、我们新建一个项目

通知

1.Name:手势解锁

通知

创建,

通知

首先,这个ViewController啊,我就用系统的这个ViewController了,

通知

2.我们先给这个viewController设置一下背景图片,

通知

这些图片,选中,拖到项目里,

通知

把这个main.png,从1x,拖到,2x,里,让它小一点儿,

通知

拖过来,

通知

拖过来,

通知

这一张啊,这个Home,

通知

Home开头儿的,就是我们控制器view的背景,这是一张图片啊,不是一个深蓝色啊,这是一张图片,接下来,我要给控制器的view,去设置这张图片,

我们之前说,设置控制器的view,如果想设置成一张背景图片的话,有很多种方法,<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值