一、接下来,我们来上课啊,首先呢,我们把这个,手势识别这一块儿,说一下啊,

1.在我们这一块儿呢,有一个PPT,

1)首先啊,监听触摸事件的做法,如果想监听某一个view上的触摸事件,之前的做法是,自定义一个view,然后呢,在view里面,实现它的这个touches方法,在这个里边啊,去处理,
2)这个方法里边呢,会有一些缺点,
首先,你需要自定义一个View,你需要去写一个类,然后,去绑定这么一个类,
然后呢,接下来,对于在view的内部,的touches方法中,监听触摸事件,在默认的情况下,无法让其他外界对象监听view的触摸事件,
不容易区分用户的具体手势行为,
好,也就是说,比如说啊,我现在想来一个拖拽的效果,就是说,我点着某一个view,跟我们之前做的那个单点触摸的案例啊,有点儿那个意思,如果我们现在,假如说,想做一个拖拽的效果,那我可能要在touchesBegan:touchesMoved:里边,都要去写代码,然后,我可能,要做一个,轻扫的手势,就是从右往左,滑一下的这个手势,我想做这么一个操作,那么,可能也需要在这个,两个方法里边,去写,我们把所有的代码,都堆到这几个方法里边去了,所以,它这个意思就是说啊,不容易区分用户的具体手势行为,就是不好看,
3.好,然后呢,这里边,在iOS3.2之后,苹果推出了这个手势识别的功能(Gesture Recognizer),

这个手势识别,是基于触摸事件的,给大家举一个例子,在这个模拟器里边,比如说,我们打开相册,我们随便拿一个啊,

然后,在这个里边呢,我现在,从右往左去滑动,

你在从右往左滑的时候,我们,如果啊,现在想做一个,相册翻页的这么一个效果,那,用我们之前学到的知识,也就是touchesBegan:touchesMoved:的时候,你需要计算什么,你需要计算你的,起点的一个位置,到你滑动了以后,再撒手的时候,这个位置,两个之间的偏移量,然后呢,你还要去计算,速率的问题,也就是说,我现在,同样是这个点,滑到这个点,如果我轻轻的滑,一撒手,和你使劲一滑,一撒手,肯定效果是不一样的,那么,就是说,在我们,如果没有这个手势识别的时候,那做起来,这个功能,会是非常非常麻烦的,然后呢,现在,苹果给我们封装好了,然后呢,到时候,它自己就会去判断一些东西,现在呢,它会给你封装好了这个手势识别的功能,有这么一个类,这个手势识别,是基于触摸事件的,也就是说,换句话说,像这种相册翻页这种效果,我们拿触摸事件,touchesBegan:的这一块儿,touchesBegan:touchesMoved:肯定能做出来,但是会做出来,很麻烦,然后呢,现在我们用了这个手势识别,的这个功能,会很快速的能够把这个功能做出来,也就是说,手势识别,实际上,就是基于触摸事件的,要搞清楚这一点,
4.然后呢,这个里边呢,我们,

这个手势,叫做UIGestureRecognizer,然后呢,为了完成这个手势识别啊,必须借助于手势识别器,也就是这么一个类,手势识别器,叫做
UIGestureRecognizer,
有这么一个类,然后呢,这个类下面呢,又有很多子类,又分为什么,
1)敲击:UITapGestureRecognizer
2)捏合:UIPinchGestureRecognizer
3)拖拽:UIPanGestureRecognizer
4)轻扫:UISwipeGestureRecognizer
5)旋转:UIRotationGestureRecognizer
6)长按:UILongPressGestureRecognizer
好,我们会演示这几种手势,都是干什么的,怎么样去使用它,然后呢,步骤都是一样的,就三步:
1)首先,先创建一个手势对象
2)然后,给这个view去添加,
3)然后,再去实现那个方法,
实际上,都是三步,固定死的啊,
二、接下来呢,我们就来做一下,来新建一份代码
1.新建一份代码,

Name:01-手势识别

首先呢,在这Main.storyboard里边呢,我要拖一张图片过来,对这张图片啊,去进行一系列添加属性的操作,
把这张图片拖过来,

把这张header @ 2x.jpg,图片,拖过来,

拖过来了以后呢,来到storyboard里面,我直接从媒体库拖过来,


本文主要讲解了Objective-C中手势识别的概念和使用,重点介绍了UITapGestureRecognizer的运用,包括如何创建手势对象、添加到视图以及实现相应方法。通过实例展示了如何设置轻敲手势,包括设置敲击次数和需要的触摸数量。最后讨论了手势识别相较于监听触摸事件的优点,如简化代码和易于区分用户手势。

1205

被折叠的 条评论
为什么被折叠?



