00:00
我们刚才讲了这个这定属性,大家注意这一加上一个回收啊,刚才有位同学提示的是吧,那么这个回收呢,大家可以看一下原代码,就源码里面啊,这个工具里面它呢,你看啊,最下面这里面它有回收。好,这蛋白比较多是吧,那各种的情况都处理了,下面有行代码叫做看到没有。回收对不对,就它,然后呢,就是就是这个门板,所以我们也需要什么回收,明白吧,记得这个事情就可以了,OK,搞定。好,那接下来我们做什么呢?接下来我们要做这个功能,当然我们按按按理说的话,应该是把水波纹啊索引这些做了,但是呢,我们这样先感受一下玉古辘谱的这个效果,然后到时候呢,我们再做这些东西,然后呢,来回的这种做不同的效果,让你感受到的一个特点啊。好了,同学们,我们做一个呢,仿于配剪,也就是我们这样的一个效果。
01:01
啊,这个是玉佩姐的,这是玉佩姐,但是我们仿一下跟它做成这个差不多,做成一个什么样的效果呢,这个。知道吧,这样的一个效果。好,那这个效果的话,我们要去做成这样的效果,怎么做呢?对吧,好全是自定义,大家看一下在这个里面有几个页面呢。是七个页面呢,那也就是说这个控件它能够有有孩子吗。能有孩子,但超多孩子是不行的,但是你看我们明显是对孩子进行滑动,对孩子的属性的这些设置啊,所以我们应该用的是什么,制定一个类。那即使预古这种方式吧,好,那接下来我们做的这个案例就是仿云推点好推荐创建我们一个model。然后往下走,这地方里面就是零六好,我们叫法。VC减。
02:03
好,那有的客户在这个里面的话呢,我们就叫做MYVP甲。理解这问题吧。好。点击往下走空白的对吧,点击个类。然后在我们地方里面把布局。把这哥们好注意了,一般的话R文件是没有生成的,先运行一把它就会生成。啊,这个工具的话呢,它有bug,就是创建一个新的model的时候,它并没有这个生成R文件,但是如果你这个R文件一旦生成过后,下次你随便写一些这个文件,它会自动生成对吧?好,那么把这些。内边距把它给什么干掉,因为它要全屏对吧,那有了以后我们就创建一个类。这类呢,我们叫做M减谬就买配减啊,那么继承的是谁呀?继承的是我们的view,然后我们只需要实现。
03:09
这个。实现带有两个参数的。购的方法。就可以了,好,这个方法同学们,刚才我们如果把它不实现,它会不会什么搞错,那这个方法它是一个什么抽象的。大家可以看一下。它这里面呢,是抽象的。这个方法是一个什么抽象的?是吧,那么这个方法是抽象的,这个类也应该是什么抽象的对不对?好,那有的课同学们在我们地方里面的话呢。咱们这方里面的话呢,我们就要选择这个类,好,我们在这个地方里面,他所做的是相当于是这个。就是。
04:02
放。V可以解是吧,小B可解,然后这个类有了过后,我们呢,就去在布局面用用用上了吧。好嘞。到我们的这个不酒店来。然后这个呢,填充附上体这个嘞,填充附上这个把它给加上ID减三好,那这个是Y1可减好,那么我们把它。给16画出来在哪里?16画在这里?叫做MY。好,我们把它给实例化。FBC是吧?好,那同学们在我们的实例化过后,我们现在要把这几个页面。
05:03
添加到里面去。大家想想,我们把这页面添加的话,那以前我们添加页面是怎么添加啊。是设置适配器啊,还有记得吗?就是我们的运配是要设置适配器啊,但是这个类它是配吗。不是微信,我们能设置是微信吗?不能,那我们这个时候怎么添加呢?我们就复循环,把还一个图片添加进去,好,那这时候呢,准备了几张图片。好,就是我们的第二天里面这防御配件里面的这个图片,看到没有,H这里面有几张图片。好。未来下。必然是吧,图片图片图片图片。然后。再看一下。正面有这张图片,总共有六张啊好,那我把这两个目录拷贝过来。
06:00
如果不拷贝是得创建这两个目录啊好,这拷贝过来没问题吧,如如果的话呢,大家都可以自己创建,如果没有目录的话。好,那为什么我放在两个目录呢?因为到时候我把这个放在不同的目录的话。它其实它图片的清晰度一样,我可以让他看一看,就是在不同的手机上,可能清晰度可能会出现不同的效果。好,那这个时候同学们,我们呢。把这个图片把它给定义成一个几何ID。分享类型。速组ID s ids等于大括号二点。这个job。A。好,然后呢,把它给复制一下,总共有几张啊,两张三张。四张五张六张。好,这是二。这是三。
07:00
这是多少?四这是五。这是六。对吧,乘一到六好。那没有没有七吧,嗯。好,那接下来我们要把这个图片。把这根们呢转换为我们的一张张的图片吧,好,这是负循环,那其实也就是要添加页面做负一分,负一完题,I等于零,I小于IDS认I加加。对吧,这时候我们就要去。在看了。这一个是张图片吧,那图片我们用什么控件啊。你妹减多少没姐入吧,好入一下上下文,然后设置什么是设置,是设置背景吧,注意设置背景。
08:07
学生。然后把它添加,添加到my my page这个这个入中就玉月中这个又是月入啊。这是我们统称叫U啊,这是个U中这个MY玉配角是一个U,对不对?好ad解U。好,那这个时候我们添加进去能显示吗?你们觉得。啊。好,能显示吗?怎么?好,那这时候是没有显示啊好,没有显示,那这个时候没有显示的原因是什么呢?大家想想,一个控件从创业到显示主要经历的是一构造方法测量。
09:14
还有就是,还有就是什么指定位置和大小,还有位置对不对。那么也就说我们是不是是我们啥也没做啊,那么在我们地方里面,虽然我们在这里面做了一个lo,但是我们做了什么事情,啥也没做啊,构造法做了测量我们没做,绘制也没做,注意有时候绘制啊,我们没有显,但那为什么它也能显示啊。系统帮我们绘制知道吧。系统帮我绘制。啊。那么测量有时候我们不显它为什么也可以啊,系统帮我们。但是现在注意了,如果是月骨肉谱的话,这个方法是一定要让你写,是一定要自个去做这个事情的,所以这个时候我们啥也不写,所以啥没有。啊,这是一个,还有一个就是一般情况下。
10:03
一般情况下啊,同学们注意了,我们去治定V的五号都要实现A碰的方法。而且它本身已经强制让你射线对不对。那么也就是说,我们去绘制的时候,不管是系统绘制还是自己绘制,它都是依赖于之前测量的值和指定我们的这个位置这两个。上前面这两个方法的情况,然后进行绘制的吧,就绘制是最把后的一个方法对不对。那么也就是说在我们的过程中,还有就是当我们指定控件的位置的时候,是也是根据它测量的值,然后去指定的。但是我们没有写测量,那么的话呢,这个时候是没有东西的,那没有东西,那我们可以人为指定对不对。好,人为子定好,那么这些参数什么呢?就是当我们的布局变化的时候,回答它这个是LT。
11:01
啊,这个是R或者B代表的是什么呢?这个是左上方的坐标,这个是右下方的坐标,对不对?好是什么呢?举个例子吧。这是我们的一个手机屏幕。这个组。是X组。这个。满足。对吧。然后如果我们在这里面画一张图片。特简单,只要要想绘这张图片是两个这个点,两个点决定了,那么这个点的坐标,它就是L。T。什么问题吧,那也就是说它就是这两个。就是。就是什么呢,就这个。
12:02
这个就是我们的L。T。就是说在这个加在这个桌面上。这是屏幕,我要绘制这个图片。这个点就是LT,就它。怎么理解吧,这个点。就这两个参数。就是分别是right。还有什么?那么这个在这个地方里面L是什么呢。这个点是L。是T。就是L错了,这个才是T是吧,那L是什么距离左边左边的吧。那这个呢是什么T是不是好,那这个是这边吧。不是这边啊,不是这边是这边。那这个呢是什么?明白吧,好,这就是这部分就是这个。
13:01
对不对,明白吧。好,那同理,我们这个画个图一样的。呃,这里面。这个L就是什么,这里这个是什么T。这个。这个是。啊,这个是什么对吧,好分别的话呢,这个是right。这是什么?Bottom。好,这是什么?比是不是明白了吧,这距离底部的距离是不是好。那当我们这个不断的变大的时候。
14:01
适合这个屏幕坐标。重合了,假如这个图片要全屏,那这个时候的坐标。是多少啊?这个是多少啊。零。对不对,好,那这个是多少啊,这的这个是是空间的宽呢与DTH。Get h。是这样啊。好,然后往下找。是这样,同学们。好,这样的一个值。好,那么就这个两个点。但是这里面它显示的是这一张啊。
15:00
对不对,那也就是说,如果我们这样去做的话。的话。我们要去指定刚才这六张图片的这平方的位置,那我们现在才指定的这一张,那么。这只是一张图片,是不是是固定的呀,那么下一个屏幕。就说这是一个图片吧,一会它会进来显示吧,那么它进来的坐标是多少呢?注意了,是不是就这这个点呢,就是这是一样图片吧,它跟屏幕一样,对不对,那这个的坐标。变多少啦?啊。好,X是多少?VDHY呢?是不是这个嘞。二倍啊,是等于它这个地方二倍呀,就是是不是二倍,我们这个二乘上一。
16:04
D是。括号。进行一个逗号吧,然后。Y是多少?是这样啊。这没问题吧,好,那如果是。这个第三个页面呢,好这时候。他是一样啊。它就会有变化了。这个的坐标。是多少。这就是。那我们看呢。能走。二倍乘括号二倍二乘上VGVDH,然后Y是多少零?
17:05
好,那接下来这个们。是多少啊?好,那这个时候。就是三。上VD。我们的。Y是多少?天气。是这样子啊好,那么上面坐标我们可以用个公式来表示。这里面当它是为零的时候,第零个页面,这是第一个页面,这是第二个页面吧,我们得出这样的一个公式,上面坐标可以用这么一个表示。就是啊,就是。I你看这是第零个的时候吧,零乘任何数等于零呢?好就是I,就是I乘上多少VDTH是不是?
18:04
然后Y呢,都是零的,好,那上面就是通的坐标,就用这个公式来表示啊。好,然后下面。就是等于多少啊。它其实就等于括号I加E乘上多少get vdvdth吧,是这样啊,Y是等于多少D的H,这样就是一个公式啊。那通用的是不是,那也就是说我们在地方里面,因为这个地这个控件是要把六个页面装置进来啊,所以我们能显一个显死一个位置吗?是吧,动态的把这个用下面这个。和上面这个左边右就是右左上方右上方才能确定一个页面吧,所以这个时候呢,我们就要去把。
19:05
所有的孩子遍列出来,因为我们现在在这个上面加了多少个孩子啊,六个,那是要把六个孩子遍列出来啊。好,所以要便利。便利我们的孩子。给每个孩子指定。在屏幕的一个什么坐标。位置好做一个负循环类型,I等于零,I小于get秋景的孩子,那孩子的话,同学们孩子的话总共有六个,那六个,那么他得到了类。那就是总共总共是有六个对吧?好,那但是我们这地方里面的话要小于不能等于吧,二加加。那接下来我们叫啊找到一个什么I,那现在有个后的地方里面的话呢,我要去得到秋,秋顶秋等于五,然后get我们的什么Di去得到每个孩子变列出来吧,注意因为我们这里面是按照先后顺序去添加的吧,是得到是也是先后顺序知道吧,然后在地方里面我们就可以去。
20:23
Lay out out,是不是指定每个孩子的位置啊?好,那这个时候注意了。LT上面的,刚才画这个图上面就是LT啊,那么就I加上后面,后面是应该有个零吧。啊,这个零忘记写了四个零呢。应该是一个零。对不对,好。应该是一个零。零的话,然后再加上一个括号,是这样子的,加个零是不是。好,那也就是说同学们这个地方里面就是I。
21:00
乘上多少等于DH是不是啊?好,然后再进行一个什么零。对吧,好,那接下来在这个地方里面就是I,这个I加上一。乘上变成宽对吧。然后接下来再是什么空间的好是这样子啊,注意这个面室是谁呀,是整个空间空高啊对不对,好这样的话,我们去运行起来就看到了。啊,可以看到了,好,我们去运起来,同学们。你写的?好,之前是没有的,现在你看。有可以显示了吧,好,那也就是说同学们,虽然我们没有测量,大家想想测量的目的,测量的目的是就为了后面的两个方法呀。
22:04
那假如说我现在人为的知道这些参数了,那么是不是我们其实测量的值,是不是我们已经。不就其实不需要了,嗯。对不对,直接指定就可以了,然后呢,就可以把它给绘制出来了,好,那同学们,那么在我们这个地方里面呢,我们想要做这样的一个功能。就是什么呢?当我们滑动的时候,在这边滑动的时候。在屏幕上滑动,就是要做成这样的效果,你看是有有有变化呀,但是现在你看滑动是没有变化呀,好,还有这个标题,我们把它隐藏怎么做啊。是比较简单的,就是往里面啊这个window,然后这个是把这个设置为就没有标题了,好隐藏标题对吧,好我们这时候再去运行起来的话呢,根本就没有标题。好。这时候你起来。
23:00
你看诶。啊。那么我们是不是这个地方里面,这是现在是我们导的是这个。我把那个什么变成H体数就可以了,好一起来啊,V7的。好,我们齐一起来。这个时候。就可以了,好,那同学们有了过后我们要做一个滑动,滑动的话,大家之前有自己自定义过滑动吗?你们你们咱们班上手机卫视吗。没有没有是吧,哦,没有啊,所以我这个课稍微压力有点大哈。因为手机卫视里面有些东西啊,前面都讲过了,但是手机卫视,因为手机卫视很多东西也老了,说实话这个这个,所以这咱们班就好,那我就慢一点啊,咱们没上个手机卫视是吧。
24:05
OK,这个这个很多同学都没讲啊,相当于是好,我们看啊。那么在我们这个地方里面的话呢,好,我要做一下滑动,滑动的可用手势识别识手势识别器,手势识别器肯定没讲过是吧,好好。这个手势识别器,手势识别。T,那所实B器呢,用有三步走,定义,先定义出来,定义出来,定义出来就定义成层面层变量,第二步实例化,实例化的时候呢,把我们这个想要的方法,方法给什么给重写,比如说他有哪些方法来手势识别,就实是你的识别你的手势,比如说在屏幕上双击单击滑动。
25:00
他帮你解析出来。就说诶,我注册过后,我就可以得到一个双击单击,后面讲这个手运营的时候还可以再次用到,但是我们现在用到的是手指在屏幕上滑动,它还跟着滑动啊。再见。好,那么接下来第三步千万不要忘了,就是。在on touch event的时候呢,要把事件传递给手势随便器。为什么从手势随便现呢?因为你把这个事件给他,他才能把这个事件解析为双击单击还滑动,知道吧,你不重给他,他怎么解析啊,但是他没有对事件进行拦截的功能,它只是对事件进行处理。就像我们一杯水,我们只是进来过滤,对吧,但这个水还是存在的。是吧,过滤哎,得到残渣什么得到营养啊什么的是吧。
26:00
那么接下来我们就来做一做第一步定义,在这里面定义一下JS的。好,这呢是手势准备器。好,那给大家看一下它的注释对吧,它地方里面呢,手势随的器,一会的话要在这里面去用,在地方里面要要去什么,要在里面去接收它。对吧,在这里面去调用。好,那么我们其实特简单,一用就知道了啊。接下来第一步定义出来,第二步就是什么实例化,实例化在哪里?实例化呢?好引利就在各种方法里面去实例化了。然后呢,我们在地方里面去创建这么一个方法,这个方法有了吗?没有好。然后在这个地方里面,我们去把这个。把他给溜出来。好,另外过后大家看一下是有有些方法过时了,大家看一下这里面两个参数,我要用两个参数的,第一个是上下文。
27:06
第二个六谁呢?它它里面有一个什么呢。有一个simple just简单的,这简单的呢。他就是把一些常用方法给实现了,我们直接去用就可以了,好那这时候有了过后。括号。好,那这里面是两个括号啦,好那就搞定了,但是我们最终要实现里面的在手指上滑,这里面你滑动的方法呀,好点击看一下。他这边有有很多方法,你看啊,有个长按。就你在屏幕上长按的时候。会回到这个方法。好,然后呢,还有一个就是。就是在你屏幕上。跟他走。这时候他回到这个。
28:00
然后双击的时候回到这个好,我给大家可以给大家可以看看,长按可以玩一玩。好,然后。再去点一个是这个我们要用啊,还有双击用用。好,然后呢,把这几个呢给大家来看一看,打个吐司啊什么的啊土司。好,那这个上下文注意了,上下文是不是刚好把这个问题就传进来啊,好,然后这里面呢,就是双击。好,然后呢,TH减。然后这句话里面呢,把它给出来。这个要把它改为什么三种类型对吧,双击好,然后在地方里面呢,就是我们的滑动,这个滑动的话,一会用到长按。这是长按。
29:06
看好,那如果就这样的话,它就不起作用的,它不起作用。那这里面是想把它实例化了,但是呢,还不有作用,那怎么呢,在触摸事件这里。它一般在这里面好,那么注意触摸事件的话,我们是相当于要自己重写了,所以我们把它返回什么多少就但是为了让事件回传,所以要把这个什么要继续保留。好,那这个地方里面的话呢,把我们的这个这个把它传递过来。点on。好把它给存进去,好这个时候注意这个千万不能忘记,就是说呢,这个是第三步把事件传递。给谁啊,手势识别器。然后第二步在这个地方里面就是实例化手术C位。
30:04
实例化手势实点去手势实力系列,它没有对事件进行拦截的这种特点啊,好,我们去运行起来给大家看看一看。你看看。好,我们去运起来。好,那这个时候。长安,看到没有才出来吧。好,然后长按过后呢,我们还有个双击。看到没有,我确实双击了啊,双击好,然后长按。好,然后呢,我们滑动。滑动的话又没有没有做任何打印呢啊,它就不回来,当当我们在滑动的过程中,注意现在我滑动它起作用吗。不起作用,看到没有滑动不走这个画面不走那样我们需要实现啊。
31:00
那么一会的话呢,相当于我们就要把这个给实现了,就是首先这个是滚是否滚动,是我们要把它给处理啊,返回多少呢?Q就带我处理了,然后在这个地方里面注意了。这个就是你看啊,当我们在上面一滑动的时候。他肯定有这样的一个效果。就比如说是一个屏幕,我们在这里面一滑动,我们首先按一下吧,一晃来到这里吧,这里肯定是也有一个离开按下的时候啊。这个呢,就是我们的译文。一一就是就是什么呢?就是我们的这个。啊,这个一,这个是二,这是离开的时候。然后这个呢,好就是我们的什么距离,知道吧,就距离。就是A3移动距离,这是Y动滑动距离,好,那么这个时候我们的系统里面所有的U基本上注意这个U骨肉谱是不是也是U啊,它的负类你看是谁呀玉那么呢,它会有一些方法,这些方法叫什么呢?可以让自己的。
32:13
自己本身的内容发生移动。内部的内容。同学们这几个呀,这几个页面是他是都是他的孩子吧,孩子是他内容吧,那么这个时候呢,所有的欲,它就有一个方法,让自己内部的内容放在移动,注意是内部的内容不是它自身,它自身不变。它字是不变,它内部的内容发生变化,就发生移动,那么呢,这里面其中有一个方法叫是I。还有。这个呢,是相对于当前的位置去。去移动的,像根据当前的这个这个当前的这个这个位置,然后。去移动。
33:00
传值传它的距离。好,诶。我还原一下啊,别退。回退好把它给存进去,好把它给。存进去。好,那么注意他要传的是什么类型呢?类型,但是这个是什么类型,类型需要强转。好。In。这里面呢,好,我们去把它运行起来就可以滑动了,同学们。好,给大家来看一看。好。看到没有这种就可以滑动了,对不对,看到没有好就可以滑动了,看到没有好,你看我们就可以滑动好往可以可以上下可以滑动对不对,其实我们只需要在哪里滑动啊,在左右滑动就是可以把它设为零不动。
34:03
好,也可以这样就是。Get cool。Y,就是这个,你看啊,就是。原始值。起始值我看一下,这少给大家看一下。你起来,你看。上下滑动可以吗?也不可以,只有可以左右滑动,那么嘞,你可以这个也可以,就是它一个起始值,就是你创建的时候呢,它默认的一个。啊,这个这个的一个值就是一个一个一个起始值,你可能为起始值大一可以设个零啊好,那这样的话,同学们这个时候你看仍然是上下部可以啊,这个上下部可以滑动对吧。好了,同学们,这是我们刚才所讲的这个手势识别器,那么大家先休息会啊。
我来说两句