00:00
这样的事情地好。是回弹了。你看。这样的话很优雅对不对,好,但是这哥们呢,你会发现。我们这个里面。我们现在。一放一放。是没有反应了,好,我要回弹。怎么回弹呢?好,弹的原理是什么呢?好,我画个又画个图来给大家解释,画图就画,假如这是一个屏幕。然后呢,因为在这个屏幕里面是有一个是我这里有个配是有六个页面呢,然后假如说这里面有个页面,这是上一个页面。啊,这个有点画的有点胖了。小一点。然后呢?右边有个页面。
01:01
左边有个页面,当然我去好了。跟他一样大。假如这是一个啊,这是正。好,然后你在这个手指一按。框这里来。势必会在这里面视图会产生滑动啊,那假如说这个视图它从这里。哒哒哒哒。移动这。你们觉得这个是一放。这时候他应该应该是显示下个页面还是显示上个页面。起始则。啊,Start。X还有一个N的X。
02:02
谁大呀?谁大是大大对不对?好,这个距离左边大对吧,因为这个这个是是屏幕啊对吧?好,所以我们就得出这样的结论,是大X减掉N的X。如果这哥们。它是大于get v dth除以多少?二,那这个时候我们就要显示到哪个页面呢?下个页面这问题吧,好显示。下一个页面好,那一会的话呢,我会还会定一个硬的类型。是吧,我们会定义这个,它会等于in。
03:03
就是current index,那也就是说如果它是下个页面就应该是减减吧。宿舍减减减。诶,下一面。哦,是下个页面就减去减哦。我看一下啊。那么这个页面的话,如果显示下是是加加还是减减啊。是加加呀,这个是下个页面,这个上个页面那是多少啊。对,因为。我们从这样一拉。一拉。拉到如果是这样是相等这样的一放是显示下个页面,这个是下页面吧,这个时候就是减减啊佳佳。好,那接下来我们再来看一下,那假如说。
04:01
这个用户是这样子的。你按住。到这来。滑动。这个是我们的四大枣。X,这是N的。那么我们如果它在这个地方里面滑动。如果滑动大于了,这个时候回弹是显示上个页面吧,好显示三页,这是这本身就是上个页面吧,但是一个后一一放懂是显示三个页面了,好,那这个时候我们就是哪个大。N的减掉是大的,如果大于大于宽的1/2是不是就大了?好,这个时候注意了,那就是else if,然后N的什么。括号起来。大于VDTH2。
05:07
好,那这里面是不是往外去还没有去做啊,它是NX吧,减掉什么是大的X是不是。大X,那这样的话。这没问题吧?这时候。就是显示什么,上一个页面,上页面就是。这个减减。上个页面。好减减,那减减的话就要过后这个页面是这个是下边位置啊,这个是下标位置,那这个时候我们接下来做的事情就是移动移动到。就是根据我们的下标位置移动到指定的页面,那为什么要移到指定页面呢?我们一放它要回按等等等等等这个指定页面下,因为我们推算出来是就是这个下边啊。
06:12
明白吧,好,那接下来我们在这边一滑动去做一下触摸事件。得到我们的这个啊,是大小N的这些值啊,好把它给复制过来,我们这个已经分好了,对吧,地方里面好,这就是我们分期的这个结果。好颜色的话呢,黑色对吧,OK。好,那么这是有同学们,接下来我们就来到哪里啊,我们定这里面这个有个触摸事件吧。好。这个时候我们写语句了。House。Get什么H对吧,那这是K,然后这个里面就是大对吧,那然后。
07:04
Case就是还有一个什么movie语吧,Movie好,不要忘了写什么是吧。好,那有了后这地方里面有一个什么up。对吧,啊,诶搞定了。好,那接下来这两个坐标是我们去写了N的和是大,对不对,N是大吧。23吧,好,这个时候怎么做呢。好,那这时候要把这两个词给记录下来,对不对,好。那么我们在屏幕上滑动的坐标,它是类型还是类型?类型,那我们一般呢,选这个float类型,好start这个X。好,然后当我们一按下的时候,这是我们的记录,我们的一个什么图标吧,好,第一记录。
08:00
怎样好,那么我们这个地方里面get我们的X get X和get X大家讲过吗?讲过对吧?好,那接下来这里面就了。Float的类型N的X好,那么我们在我们是在水平方向滑动速度方向,我们没有做完,咱不用管它,好在我们这个地方里面的话呢,就是e event,然后get我们的X好。这是来到新的坐标来好心啊坐标对吧,那接下来是计算我们的平移量了,同学们对吧?好,第三计算偏移量,偏移量是就是新坐标到起始坐标它们的距离呀。对不对,是不是好。Lo类型是吧,然后D是碳X之距离,然后注意了在我们这个地方里面的话呢。
09:09
它这个时候用的值,你看一会又是大一法用N的是我们其实这个算差偏量是我们都不用啊,因为用这个值的话。是可以不用,当然你可以就是我们直接可以用用它对不对,就这个值我们就就就就不需要了,对吧,那这时候我们就怎么做呢?一好我们的这个什么呢。第一个。好,那这个是特简单把它复制一下。把它拿过来,欧耶是不是代码都写好了,好?是不是因为我们写的很准是吧?好,那这个是当前的下标,注意这个index。提去掉。这是一吧,好,这个index就是当前的坐标,这个要。
10:00
要要做到一个。记录。好,我们把它给创建出来。好,那这就是我们当前。当前我们页面的什么下调位置好。那么这个时候有了过后同学们在我地方里面呢,好这个宽错了对吧,好,那有同学说诶老师啊,你怎么要做一个这么一个变量,然后然后从外面复制给他是这样的。我们再加一个页面,减一个页面的时候有可能越界呀。越这样,这个时候我们把它修正后,再再再再次给他。这个是真正的当前的下边位置,这个是什么?临时的,我们把它修正过再扔,再传递给他知道吧,好,那就是我们现在已经得到这个过后,是不是要去根据下边位置去指定到这个页面了,好,就要是骷髅。这个Q。
11:01
Q,可以减,是移到我们对应的页面去啊?好,那么是从谁进去啊?对吧,这个方法有了吗。没有。好。好,那这个时候这个方法的作用就是要一个是要屏蔽非法值,什么叫非法值,我们的页面是从零到五吧,总有六个页面。突然有一个负一。是非法吗?非法对吧,就像国家政策一样。以前只能生一胎,现在二胎了,对吧,但但是如果在以前。你生两个那就非法对吧,当然啊,我们这个这个这个这个视图,这个安全的机制里面,包括我们加va基础里面,宿主是从零开始,就这么规定的,是吧?如果你数组中产生一个负一就错误值对不对,是不是OK就这意思,那么既然如此,我要平比它,还有我要根据。
12:07
位置移动到指定页面,好,那这个时候我们就要做一个什么事情呢?平非法值,如果这哥们碳它如果是小于零是非法的吗?数组数组有有有小于数组的,这个下标有小于零的吗?那么就把这个碳等于多少零?那么。如果这temp。它是大于我们的,当前这个页面它有六个孩子,那么也就是说你孩子的话有六个孩子,那它下边应该是有几个,有五个吧,那如果你都把它大于了,那是不是也非法了,那么就让你什么等于这个最大的。这没问题吧?
13:01
这个是它得到的值是六,但是我们孩子不是只有五个啊,就就是下边只有五个对不对,就数组有五个吧,就出来减个一刚好相等。这问题吧。那么有了过后这个才复制给外界的,这个才是我们什么要的,对不对,好,这个就是我们的当前的。当前页面的什么下边位置对不对,然后根据这个位置。哎,我们是给切换到定位到某个页面呢。还记得我们这张图吗?哎,这是第几个页面啊。这是第零个,这是第一个,第二个是不是我们可以根据这个定位到任何一个呀,然后坐标我们是也有了,这是这个的时候是零零,这零是不是ii乘上这个数,刚好根据这个就到这里面去就可以了。好,因为这个是当前下标,这个是也是当前下标,哎,这个是下标为零,这为一,那是就跟刚好是这个公公式啊。
14:07
是,公式是I,然后乘上get v10啊,Y是零啊,好,那这个时候我们就可以用这个方法了,同学们啊,是。Two。然后X上有。我们的这个,呃。我们这个SN有移动吗?没有对吧。没有的话可以用这个起始的啊,是不可以用这个,这个没有变动,然后我们的这个就有了,首先I乘上get塔V是不是的宽度啊,那么这个I其实就是谁就它是没问题吧。让它好,我们去运行起来。选择选择谁呀。啊。仿仿于飞姐,好运行起来。
15:06
好运起来。原先过后。好,我们这个时候呢。在这个地方里面。好,这个地方里面的话,我们这样我们最好呢,把这个们呢零啊,那我们检查一下代码,在我们这个地方里面的话呢,滑动。啊,一按下。啊。然后移动的过程中。是不是应该写up里为什么写?啊。哦,我看哦对错了。我们是二度来做这个事情呢,OK,那全部把这个代码把它什么减掉这里来,你看我们一般情况下,比如说我们做好的,我们现在不动吧,一放,因为移动是移动产生这个这个东西是谁来做了。
16:02
是手势识配器帮我们移动了吧,那这个时候我们只需要的是什么?Up,你离开的时候做这个事情了,好可以了啊。好,那也就是说我们的二是在做事情,移动是不做任何事情的。Up的时候才啊做这个事情好,我们给他一放你看。这时候应该来到左边那个页面吧。好,这个时候应该来到哪个页面啊,是右页面了,这个时候来到哪个页面啊,左边的吧。厕所已经来到哪个页面啊?对了吧,你看就会在那,但是大家会发现这根本是有点生硬。有点强暴的味道在里面。就是吧,按按下去是吧,是不是很强,你看嘛,咚咚它是瞬间就什么。定位这个位置是不是很强硬对吧?好,这个是啊,移动到指定的这个啊,指定的这个啊位置对吧?指定位置它是根据什么呢?根据我们的下边位置是一种指定位置对吧?那这个呢,我们get它啊是Y,我们可以给他看一看,好那这个时候应该也是可以的,因为起始的嘛,对吧。
17:22
好。那么一起来这个时候。也是一样的好,一放一样的好。那么呢,我们这个时候呢,就可以放了。好,那么在这个地方里面可以放过后,接下来我们现在有一个困惑,就是什么困惑呢?这哥们也太生硬了。看到没有?太生硬了。太生硬了。那怎么办呢?我们可以让他这样。哒哒哒哒。得得当这种回弹呢。
18:00
是不是就像我们刚才的这个动画一样,你看它是有一个啊。它是有一个大家看好我们移动过后,我们让它平伏。是是很,是不是是平滑的复位啊,好好,大家看好。是很温柔啊,但是你再看一下这个。很强暴。看没有?很你看瞬间呐,好好,那么我们怎么让它实现这样的一个效果呢,或者说我们怎么让它实现这样的一个一个这个的话就要好一点,对不对,没有像那个那声音,那这个们呢,你看啊。相当的。啊,相当的这个生硬,看到没有好,那怎么去解呢?其实就是哒哒哒哒哒,让他去做这个事情好,什么意思呢?给大家又画了一个图。画个图。好,大家好,咱们地方里面设置一个屏幕。啊,屏幕呢发小一点,然后呢,这里有一个左边它有一个。
19:09
右边。它有一个。对吧,然后在我们地方里面好,假如这是中线。好,那么我们假如说同学们,我们从左边这里面把这个屏幕。本来这个屏幕呢,它是在左边的,被我们哒哒哒哒哒哒滑滑滑滑到这个时候,诶啊这里时候滑到这个时候,它应该一放的时候,应该哒哒哒哒哒回弹到这里了吧,一放的时候哒哒哒哒哒哒回,就是因为他最终是从这里被我们滑出来的,被我们哒哒哒哒哒滑滑滑滑好这个时候我们手已经滑的差不多了,已没有距离了,这一放大大家再回弹吧。好,那也就是说它从这个位置里面,它要不断的1I点一点一点的移动过去。
20:10
是这样啊。一点点移动过去,什么意思呢?其实就是这哥们,他一放的时候,他就哒哒哒哒哒哒哒哒。好,这样的话就很平的。放下去对不对好,但是频繁的放过去的话呢,那其实我们要知道几个事情,第一起始。这个是目标,那目标减掉起始,就是说这这这里面应该是圆点吧,这一段。减掉这一段是等于这一段的距离啊,是可以算出来吧,好,那也就是说我们这个地方里面是我们目标的位置位置吧,它减掉,比如说这个时候在S移动距离和类型D是探。
21:07
看10X10,它等于目标减掉起始吧,这个时候是距离吧,这个其实就是我们哪一段呢。就这一段距离。换颜色换不了。好,这段红色这段。是吧,这段。从这个。起始以放是回弹到这里为终点了,啊,在这里错了,这里边缘是不是为终点,那这个时候那就等于这个点。
22:07
到准备距离,剪掉这一段。是吧,等于它吧,这段。是不是?这段是不是这段我们是已知了吧,就是谁。就他。好,那么也就是说我们现在的得这样的一个距离,一个规律了。就是在我们这个地方里面。我们的总距离自己知道吧,总距离。已知,已知是多少呢?算出来这个值就是总距离吧,要移动的,然后总时间,我们是可以指定规定一个总时间的。好,那么就是说总时间,这个时候我们假如说是500毫秒,好,那么有时间速度可以求了吧。
23:02
速度。速度可以求还有这一小段。这一小段移动的距离坐标是不是也可以依法也可以求啊,好,那么这是我们要求。一度。一小段。的距离,求移动一小段。对应的坐标,这一小段对应的时间。时间好,然后我们主要是用这个坐标,然后就可以挨个挨个的用school to去什么移动,就把它,就是把这个距离瞬间移动改为移动多次。就可以把这个生意问题解决了。明白这个思路吧。好,那接下来我们就要去做这个事情,现在很生硬,那我们现在能用这个方法吗?不能了,就是当然我们后面还是用这个方法,就是说把它分为多个。
24:05
多个模块啊,多个等分,多个移动,好怎么做呢?好,我们去写一个类。这类呢,我们叫。好,那么这个时候我们在地方里面做一个什么事情呢?好,首先我们把它给溜出来。啊,在。在我们的这个类里面。把它给在这里面,就先把它给定义出来。我们叫呢,然后有了过后呢,这个类。MYV配姐这里。啊,我是不是扭错地方了?在哪里啊?啊,我在。
25:01
好,我这次把它给定位到这里面去,好复制到这里来。是吧,好这个呢,把它干掉。的污染代码对吧,好,然后有了过后这里面呢,把它给在这个用的时候呢,我把它录一下。因为过后,然后这个时候出意了,同学们,我们刚开始一移动的时候,在这个地方里面,你看是我们把它注射掉了,我就这样掉是大窟窿。啊,这个是他的思窟,思窟。好,开始移动,好,那么这个时候呢,我们传什么进去呢?传起始,起始坐标再加上我要移动的距离X移动距离。
26:00
好,Y足有移移动距离吗?没有好这个方法是。其实就是刚开始移动,就是说你刚开始从这里。起步要移动这一步这一步这一步一刹那就记住这个点,就是刚开始对吧,刚开始好,然后把这个方法给创建出来。好,这个呢。坐标一般是什么类型啊类型。好,这个呢,是。一般是用头型好,我们这个是第碳碳。Y吧,Y移动距离S移动距离起始位置。好,那么接下来在我们地方里面呢,好,我们这样吧,叫他大X。是大Y对不对?好,我们把它给记录一下。好,把这个记录好,形容顺序都无所谓吧。
27:13
好,那我把它给判定出来。这没问题吧?好,注意这个是我们的坐标。这两个是我们的起始坐标吧,起始坐标这个是移动的距离吧。X轴移动的距离,好,下面这个是在Y轴要移动距离吧。好,起始坐标。X轴起始坐标,Y轴的起始坐标。
28:06
对不对,好,那注意我们一刚开始的时候记录,是不是还记住时间呢。你刚开始是记住这个时间,移动这点的一个时间呢。就说我们之前是不是说了这移动的小动对应的时间呢,就是我要记住起始值才知道它移动多少,没有起始值我怎么知道移动多少对不对。好。这个时候呢,还有一个是start,看等C系统的这个时间,这个时间是一个什么开机时间,系统开机时间什么时间,就是其实就是开机时就是。你开一刹那。到现在一直开启的这个。一个值,这个值的话呢,你。都用它的话,到时候摁的时候也用它,这样的话一减就这这个这个区间花了多长时间啊,和我们的那个系统,和我们之前系统时间是一样的啊,一样的好把它给创建出来。
29:07
这个是我们开始的时间。开始的时间。然后有了过后还有是否。移动完成is finish认为。就是说这个的意思是什么呢?是否移动完成。好木,刚开始有移动完成吗?啊,就是没有移动完成。To就是什么移动结束,刚开始肯定还没结束嘛,Force嘛,对不对。好,那这时有了过后,我们刚才这里面是一掉它了,一掉它了。好,这哥们呢,他是一个。
30:03
特好。然后这个时候在地方练,有了过后,好,这时候我们选一个方法了,就是。当它移动到这个的时候。从这里懂,你说这词是我要记住这个结束点了,好,这时候有这个方法,帕里克。类型啊,Computer啊计算。The all。我就计算它的一个什么滚动的一个偏移量好,然后。默认呢,返回Q。0TEN two two代表什么呢?好,给大家说一下了,这个方法其实我们要做的事情很多,就是要求这小段的距离对应的坐标,然后。
31:02
基本上在这里面做这个事情。然后这里面要做这个事情过后,注意还要做一个事情,就是返回false。也是有定义的,就就是什么正在移动,默认的时候就在移动啊,正在移动force就是什么移动结束,我们这样去定义。哪有那个后注意啊,同学们在我们这个地方里面。这个是刚开始的时间,接下来应该有起始时间了。类型end,看那接下来这个six block,然后这是一个什么结束时间吧。那结束的时间。那么这个时候我们就看一下移动到这里来的时候,这一点花了多长时间了。好,这时候pass碳等于N的什么?减掉谁大的碳,这个就是我们这一小段所花的时间吧。这一小段所。
32:09
花的什么时间?好,那这个时间,因为我们总的时间是为多少,总的时间我们设置为多少,对总的时间投。头判等于多少500这个偷这个是O吧,诶。这样吧,对吗?总的时间,这个是总时间,刚才我们已经说好了,总的时间500毫秒吧,总时间,那么你一种这小段时间。不可能发发500毫秒啊,所以一般会什么小于啊,小于多少500毫秒。对不对,那么这个时候是还没有移动结束吧,还没有移动什么,还没有移动结束,那么如果他花的时间,因为他随着时间推移越早越往后面。
33:10
是时间就越越久啊,是有可能有一天大于500毫秒啊,当大于的时候,就什么移动结束,移动结束就把它返回设为多少。啊,如果。如果移动结束的话,那么我们看一下这个值finish,如果用结束就设为to吧。这个如果移动结束就设为多少就。那如果你移动移动结束了过后,这个时候我就判断了,这个地方里面你都已经结束了,我把它返回多少。你看就结合起来了,你看这个词也用到了。他是。他是Q就已经结束,你看明明就已经结束了嘛,我就反Q。
34:02
对不对。好,那这个时候呢,为to,然后刚好你结束过后,接下来我就为two过后我就return force,刚好force就是移动结束,看到没有。两个扣起来了。好,那接下来这段这一段小花的时间就有了,接下来我计算一下平均速度了吧。好计算。平均。速度好好好,那么计算平均速度,然后有了同学们,这个时候平均速度。啊,我们说一算这个时候。弗类型,然后。CITY,这是一个速度,然后它等于什么呢?等于我们的这个总距离,我们总的距离是多少?是就是这一段了,这一段总距离是我们已知啦。这是总距离吧,是不传进来了。就是在X移动距离吧,好,总距离它除以总花费的时间。
35:02
总化率时间是什么?这个就是我们平均速度吧。然后有了过后速度有了过后,接下来我们要求距离这移移动一小段的距离就比较简单了吧。好,第一次探smile X就X,就X移动的这小段的距离。这小段的距离,它是等于我们的什么,花的时间乘上多少,乘上这个速度吧,是这样子啊,但是呢,为了减省,我们直接把它拷贝过来,注意一定要拷贝过来。把这个拷贝过来,如果不拷贝,你直接这样承诺,有可能会有问题,就是它值不一样。就说不用他就这么写。你也不要把它写在后边,有同学把它存在后边也会有问题。注意啊,它它它就有,它有时候它就变成零了,知道吧,你可以打印一下写在前面,注意一下啊,你就写在前面。
36:00
这就说时间成长速度了吧。好,这就是我们在移动这一小段对应的什么距离吧,那距离有了过后,那是接下来加上起始坐标,是不是就等于我们的这个,这个是等于我的坐标了,好,那么就是我们的类型current X。它就等于我们起始起实是是大的X啊,加上就是。就得到这个就得到谁了,坐标吧,好。然后这个坐标的话呢,我们要让他去设get。好,点击一下。Set get就主要是什么get吧,给外界用了,好点击这个门。改成这是得到坐标吧,得到坐标。
37:01
好,私聊。好了,同学们。这个时候我们。去把它给得到了,过后大家好。那么在这个上有了过后好注意,这里面注意了。如果移动结束过后。注意也是起始加上我们的什么。加上总距离。你看,因为你最终在这个地方起始,然后就就这一节吧,就刚好相等了吧,就已经结束了吧,D是什么?D是碳X,就这样就可以了。大家明白啊,这个是我们最大移动的吧,你都结束了,是肯定就已经过去了,过去了就是这个最大的值了吧。OK。好在这里面就有了。好,那就这样就搞定了,搞定过后我们用尽快的用啊好,这个时候已启动过后,这个时候我们就要去什么刷新。刷新就是什么这个方法,这个方法会导致哪个执行呢?On JO,注意它不止导致on方法执行,还会是导致我们的这个啊康。
38:14
这个方法执行。计算计算我们的什么滑动好这个方法是什么空的方法,你可以把它什么注释掉,可以留着都可以,然后有了后,我们导这个方法执行,一启动,接下来我就马上一启动,这个方法一调出,导致它也执行了。是导致它执行了,那它一执行过后,我们就可以计算到结束点的这个坐标啦。这个时候我就调这个结束点,就是computer。这个方法,那么这个方法是我们刚才写的呀。它返回to和for是,如果是Q是正在移动啊。就代表是这样移动啊好,然后有了过后我就这样去判断,哎呀,你正在移动是吧,啊太好了是吧,那移动呢,我就得到你的什么坐标吧。
39:07
还记得有一个坐标吧,Get什么坐标,这个坐标的话呢,它是一个什么类型,类型column X是坐标吧,然后在地方里面我用一个。就把它。进去在百有移动吗。没有把那个强制类型转换。然后有了后,注意当我们一移动过后,就这一点就被我们移动了吧,它就得回弹了,得回弹回弹了,但是我们要怎么让它不断的不断的回弹呢。是当我们再去刷新的时候,他是又这个方法啊,这方一定是又去又去计算了,又去计算,这么又又下一小段,下一小段。然后一小段后就递归对吧,一小段好,最后这个门终于移动完了,它返回多少啊。就返回,返回这个变成Q了,Q过后你Q过后这个返回force force后这里面还有机会执行吗?就停止移动了。
40:07
我们随便起来。给大家看一下。这种你看这里面特别脑脑子吧。好运起来。在我们的这个模型上。谈恋。回弹了吧,好,很温柔。看见没有?好,我们一飞塔。你放。看没有,同学们这就回弹了,你看回弹特别好。是不是之前是瞬间就回弹。是不是好,那同学们早上就那个到这个地方大家吃饭。
我来说两句