精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

談談iOS中粘性動畫以及果凍效果的實現

移動開發 iOS
在最近做個一個自定義PageControl——KYAnimatedPageControl中,我實現了CALayer的形變動畫以及CALayer的彈性動畫,效果先過目:

在最近做個一個自定義PageControl——KYAnimatedPageControl中,我實現了CALayer的形變動畫以及CALayer的彈性動畫,效果先過目:

 

先做個提綱:

第一個分享的主題是“如何讓CALayer發生形變”,這個技術在我之前一個項目 ———— KYCuteView 中有涉及,也寫了篇簡短的實現原理博文。今天再舉一個例子。

之前我也做過類似果凍效果的彈性動畫,比如這個項目—— KYGooeyMenu。用到的核心技術是CAKeyframeAnimation,然后設置幾個不同狀態的關鍵幀,就能初步達到這種彈性效果。但是,畢竟只有幾個關鍵幀,而且是需要手動計算,不精確不說,動畫也不夠細膩,畢竟你不可能手動創建60個關鍵幀。所以,今天的第二個主題是 —— “如何用阻尼振動函數創建出60個關鍵幀”,從而實現CALayer產生類似[UIView animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion] 的彈性動畫。

正文。

如何讓CALayer發生形變?

關鍵技術很簡單:你需要用多條貝塞爾曲線 “拼” 出這個Layer。之所以這樣做的原因不言而喻,因為這樣方便我們發生形變。

比如 KYAnimatedPageControl 中的這個小球,其實它是這么被畫出來的:

 

小球是由弧AB、弧BC、弧CD、弧DA 四段組成,其中每段弧都綁定兩個控制點:弧AB 綁定的是 C1 、 C2;弧BC 綁定的是 C3 、 C4 .....

如何表達各個點?

首先,A、B、C、D是四個動點,控制他們動的變量是ScrollView的contentOffset.x。我們可以在-(void)scrollViewDidScroll:(UIScrollView *)scrollView中實時獲取這個變量,并把它轉換成一個控制在 0~1 的系數,取名為factor。
1

_factor = MIN(1, MAX(0, (ABS(scrollView.contentOffset.x - self.lastContentOffset) / scrollView.frame.size.width)));

假設A、B、C、D的最大變化距離為小球直徑的2/5。那么結合這個0~1的系數,我們可以得出A、B、C、D的真實變化距離 extra 為:extra = (self.width * 2 / 5) * factor。當factor == 1時,達到最大形變狀態,此時四個點的變化距離均為(self.width * 2 / 5)。

注意:根據滑動方向,我們還要根據是B點移動還是D點移動。

  1. CGPoint pointA = CGPointMake(rectCenter.x ,self.currentRect.origin.y + extra); 
  2. CGPoint pointB = CGPointMake(self.scrollDirection == ScrollDirectionLeft ? rectCenter.x + self.currentRect.size.width/2 : rectCenter.x + self.currentRect.size.width/2 + extra*2 ,rectCenter.y); 
  3. CGPoint pointC = CGPointMake(rectCenter.x ,rectCenter.y + self.currentRect.size.height/2 - extra); 
  4. CGPoint pointD = CGPointMake(self.scrollDirection == ScrollDirectionLeft ? self.currentRect.origin.x - extra*2 : self.currentRect.origin.x, rectCenter.y); 

然后是控制點:

關鍵是要知道上圖中A-C1 、B-C2、B-C3、C-C4....這些水平和垂直虛線的長度,命名為offSet。經過多次嘗試,我得出的結論是:

當offSet設置為 直徑除以3.6 的時候,弧線能完美地貼合成圓弧。我隱約感覺這個 3.6 是必然,貌似和360度有某種關系,或許通過演算能得出 3.6 這個值的必然性,但我沒有嘗試。

因此,各個控制點的坐標:

  1. CGPoint c1 = CGPointMake(pointA.x + offset, pointA.y); 
  2. CGPoint c2 = CGPointMake(pointB.x, pointB.y - offset); 
  3. CGPoint c3 = CGPointMake(pointB.x, pointB.y + offset); 
  4. CGPoint c4 = CGPointMake(pointC.x + offset, pointC.y); 
  5. CGPoint c5 = CGPointMake(pointC.x - offset, pointC.y); 
  6. CGPoint c6 = CGPointMake(pointD.x, pointD.y + offset); 
  7. CGPoint c7 = CGPointMake(pointD.x, pointD.y - offset); 
  8. CGPoint c8 = CGPointMake(pointA.x - offset, pointA.y); 

有了終點和控制點,就可以用UIBezierPath 中提供的方法 - (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2; 畫線段了。

重載CALayer的- (void)drawInContext:(CGContextRef)ctx;方法,在里面畫圖案:

  1. - (void)drawInContext:(CGContextRef)ctx{ 
  2. ....//在這里計算每個點的坐標 
  3. UIBezierPath* ovalPath = [UIBezierPath bezierPath]; 
  4. [ovalPath moveToPoint: pointA]; 
  5. [ovalPath addCurveToPoint:pointB controlPoint1:c1 controlPoint2:c2]; 
  6. [ovalPath addCurveToPoint:pointC controlPoint1:c3 controlPoint2:c4]; 
  7. [ovalPath addCurveToPoint:pointD controlPoint1:c5 controlPoint2:c6]; 
  8. [ovalPath addCurveToPoint:pointA controlPoint1:c7 controlPoint2:c8]; 
  9. [ovalPath closePath]; 
  10. CGContextAddPath(ctx, ovalPath.CGPath); 
  11. CGContextSetFillColorWithColor(ctx, self.indicatorColor.CGColor); 
  12. CGContextFillPath(ctx); 

現在,當你滑動ScrollView的時候,小球就會形變了。

如何用阻尼振動函數創建出60個關鍵幀?

上面的例子中,有個很重要的因素,就是ScrollView中的contentOffset.x這個變量,沒有這個輸入,那接下來什么都不會發生。但想要獲得這個變量,是需要用戶觸摸、滑動去交互產生的。在某個動畫中用戶是沒有直接的交互輸入的,比如當手指離開之后,要讓這個小球以果凍效果彈回初始狀態,這個過程手指已經離開屏幕,也就沒有了輸入,那么用上面的方法肯定行不通,所以,我們可以用CAAnimation.

我們知道,iOS7中蘋果在 UIView(UIViewAnimationWithBlocks) 加入了一個新的制作彈性動畫的工廠方法:

  1. + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(7_0); 

但是沒有直接的關于彈性的 CAAnimation 子類,類似CABasicAnimation或CAKeyframeAnimation 來直接給CALayer添加動畫。好消息是iOS9中添加了公開的 CASpringAnimation。但是出于兼容低版本以及對知識探求的角度,我們可以了解一下如何手動給CALayer創建一個彈性動畫。

在開始之前需要復習一下高中物理知識 ———— 阻尼振動,你可以點擊高亮字體的鏈接稍微復習一下。

 

根據維基百科,我們可以得到如下振動函數通式:

 

當然這只是一個通式,我們需要讓 圖像過(0,0),并且最后衰減到1 。我們可以讓原圖像先繞X軸翻轉180度,也就是加一個負號。然后沿y軸向上平移一個單位。所以稍加變形可以得到如下函數:

 

想看函數的圖像?沒問題,推薦一個在線查看函數圖象的網站 —— Desmos ,把這段公式 1-\left(e^{-5x}\cdot \cos (30x)\right) 復制粘帖進去就可以看到圖像。

改進后的函數圖像是這樣的:

完美滿足了我們 圖形過(0,0),震蕩衰減到1 的要求。其中式子中的 5 相當于阻尼系數,數值越小幅度越大;式子中的 30 相當于震蕩頻率 ,數值越大震蕩次數越多。

接下來就需要轉換成代碼。

總體思路是創建60幀關鍵幀(因為屏幕的最高刷新頻率就是60FPS),然后把這60幀數據賦值給 CAKeyframeAnimation 的 values 屬性。

用以下代碼生成60幀后保存到一個數組并返回它,其中//1就是利用剛才的公式創建60個數值:

 

  1. +(NSMutableArray *) animationValues:(id)fromValue toValue:(id)toValue usingSpringWithDamping:(CGFloat)damping initialSpringVelocity:(CGFloat)velocity duration:(CGFloat)duration{ 
  2. //60個關鍵幀 
  3. NSInteger numOfPoints = duration * 60
  4. NSMutableArray *values = [NSMutableArray arrayWithCapacity:numOfPoints]; 
  5. for (NSInteger i = 0; i < numOfPoints; i++) { 
  6. [values addObject:@(0.0)]; 
  7. //差值 
  8. CGFloat d_value = [toValue floatValue] - [fromValue floatValue]; 
  9. for (NSInteger point = 0; point CGFloat x = (CGFloat)point / (CGFloat)numOfPoints; 
  10. CGFloat value = [toValue floatValue] - d_value * (pow(M_E, -damping * x) * cos(velocity * x)); //1 y = 1-e^{-5x} * cos(30x) 
  11. values[point] = @(value); 
  12. return values; 

接下來創建一個對外的類方法,并返回一個 CAKeyframeAnimation :

  1. +(CAKeyframeAnimation *)createSpring:(NSString *)keypath duration:(CFTimeInterval)duration usingSpringWithDamping:(CGFloat)damping initialSpringVelocity:(CGFloat)velocity fromValue:(id)fromValue toValue:(id)toValue{ 
  2. CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:keypath]; 
  3. NSMutableArray *values = [KYSpringLayerAnimation animationValues:fromValue toValue:toValue usingSpringWithDamping:damping * dampingFactor initialSpringVelocity:velocity * velocityFactor duration:duration]; 
  4. anim.values = values; 
  5. anim.duration = duration; 
  6. return anim; 

另一個關鍵

以上,我們創建了 CAKeyframeAnimation 。但是這些values到底是對誰起作用的呢?如果你熟悉CoreAnimation的話,沒錯,是對傳入的keypath起作用。而這些keypath其實就是CALayer中的屬性@property。比如,之所以當傳入的keypath為transform.rotation.x時CAKeyframeAnimation會讓layer發生旋轉,就是因為CAKeyframeAnimation發現CALayer中有這么個屬性叫transform,于是動畫就發生了。現在我們需要改變的是主題一中的那個factor變量,所以,很自然地想到,我們可以給CALayer補充一個屬性名為factor就行了,這樣CAKeyframeAnimation加到layer上時發現layer有這個factor屬性,就會把60幀不同的values賦值給factor。當然我們要把fromValue和toValue控制在0~1:

  1. CAKeyframeAnimation *anim = [KYSpringLayerAnimation createSpring:@"factor" duration:0.8 usingSpringWithDamping:0.5 initialSpringVelocity:3 fromValue:@(1) toValue:@(0)]; 
  2. self.factor = 0
  3. [self addAnimation:anim forKey:@"restoreAnimation"]; 

最后一步,雖然CAKeyframeAnimation實時地去改變了我們想要的factor,但我們還得通知屏幕刷新,這樣才能看到動畫。

  1. +(BOOL)needsDisplayForKey:(NSString *)key{ 
  2. if ([key isEqual:@"factor"]) { 
  3. return YES; 
  4. return [super needsDisplayForKey:key]; 

上面的代碼通知屏幕當factor發生變化時,實時刷新屏幕。

最后的最后,你需要重載CALayer中的-(id)initWithLayer:(GooeyCircle *)layer方法,為了保證動畫能連貫起來,你需要拷貝前一個狀態的layer及其所有屬性。

  1. -(id)initWithLayer:(GooeyCircle *)layer{ 
  2. self = [super initWithLayer:layer]; 
  3. if (self) { 
  4. self.indicatorSize = layer.indicatorSize; 
  5. self.indicatorColor = layer.indicatorColor; 
  6. self.currentRect = layer.currentRect; 
  7. self.lastContentOffset = layer.lastContentOffset; 
  8. self.scrollDirection = layer.scrollDirection; 
  9. self.factor = layer.factor; 
  10. return self; 

總結:

做自定義的動畫最關鍵的就是要有變量,要有輸入。像滑動ScrollView的時候,滑動的距離就是動畫的輸入,可以作為動畫的變量;當沒有交互的時候,可以用CAAnimation。其實CAAnimation底層就有個定時器,而定時器的作用就是可以產生變量,時間就是變量,就可以產生變化的輸入,就能看到變化的狀態,連起來就是動畫了。
 

責任編輯:chenqingxiang 來源: 楊騎滔的博客
相關推薦

2011-07-22 18:20:04

IOS View 動畫

2011-07-08 10:15:15

IPhone 動畫

2017-02-06 13:00:49

Android翻轉卡片動畫效果

2011-08-12 14:04:53

iPhone動畫

2014-04-02 10:29:12

iOS 7模糊效果

2012-06-04 14:47:42

HTML5

2011-08-10 14:40:23

iPhone動畫

2022-03-29 11:28:24

HarmonyOS動畫css

2023-11-24 08:00:42

量子糾纏屏幕坐標系

2011-05-30 13:23:11

Android 動畫

2009-09-22 12:59:58

ibmdwDojo

2024-06-04 14:17:26

2011-07-29 13:55:10

IPhone 動畫

2024-07-25 08:55:47

進度條水缸進度動畫效果

2011-08-16 18:13:42

IPhone開發UIView動畫

2011-07-19 13:07:26

iOS4 HTML5 動畫

2015-09-16 09:20:34

WWDC蘋果動畫效果

2012-12-24 13:38:01

iOSUIView

2022-06-29 21:22:49

CSS動感倒計時

2016-09-26 17:15:51

點贊
收藏

51CTO技術棧公眾號

人妻少妇精品无码专区二区| 91精品国产综合久久香蕉| 亚洲午夜久久久久久久久| 9765激情中文在线| 久久久久国产精品麻豆| 国产精品综合网站| 精品肉丝脚一区二区三区| 亚洲va久久久噜噜噜久久| 欧美日韩国产高清一区二区三区| 国产在线无码精品| 天堂视频中文在线| 激情综合色综合久久| 国语自产精品视频在线看一大j8| 舐め犯し波多野结衣在线观看| 性欧美video另类hd尤物| 亚洲第一av色| 在线一区亚洲| 欧美巨乳在线| 国产老肥熟一区二区三区| 欧美中文字幕精品| 青青青在线视频| 成人网18免费网站| 亚洲激情视频在线播放| 嫩草视频免费在线观看| 成人欧美大片| 亚洲一卡二卡三卡四卡无卡久久| 日韩精品极品视频在线观看免费| www国产一区| 人禽交欧美网站| 97色在线观看免费视频| 国产suv一区二区三区| 奇米狠狠一区二区三区| 亚洲福利小视频| 亚洲av无日韩毛片久久| 少妇精品视频一区二区免费看| 一区二区高清在线| 亚洲午夜精品久久久久久浪潮| 天天综合网在线观看| 国产在线一区二区| 国产精品日韩在线| 好看的av在线| 99在线精品免费视频九九视 | av中文字幕在线| av电影在线观看不卡| 成人精品水蜜桃| 国产绳艺sm调教室论坛| 久久av老司机精品网站导航| 国产精品美女主播在线观看纯欲| 亚洲欧美偷拍一区| 亚欧美中日韩视频| 欧美一区二区三区图| 国产一级免费av| 狠狠干成人综合网| 久久久久久中文字幕| 国产亚洲欧美精品久久久www| 91精品国产自产拍在线观看蜜| 中文字幕国产日韩| 免费一级suv好看的国产网站| 国产免费播放一区二区| 亚洲四色影视在线观看| 精品成人无码一区二区三区| 欧美裸体在线版观看完整版| 日韩亚洲欧美成人| 亚洲人与黑人屁股眼交| 91精品国产成人观看| 久久综合久久美利坚合众国| 欧美成人精品激情在线视频| 国产精品av一区二区| 午夜精品一区二区三区在线播放 | 黄色污在线观看| 免费成人三级| 亚洲视频网站在线观看| 谁有免费的黄色网址| 日韩精品看片| 久久精品国产清自在天天线| 久久亚洲av午夜福利精品一区| 伊人成年综合电影网| 26uuu亚洲国产精品| 国产一级精品毛片| 国产综合色在线视频区| 97se亚洲综合| 神马久久久久| 国产精品少妇自拍| 大胆欧美熟妇xx| 三级中文字幕在线观看| 欧美午夜精品一区| 永久看看免费大片| 亚洲自拍电影| 日韩少妇与小伙激情| 久久亚洲成人av| 视频一区欧美精品| 91传媒视频免费| 五月婷婷丁香花| 欧美激情一区二区在线| 91国在线高清视频| 亚洲欧美小说色综合小说一区| 欧美三区在线视频| 欧美成人精品一区二区综合免费| 米奇777超碰欧美日韩亚洲| 中文字幕亚洲欧美一区二区三区 | 国产免费久久av| 亚洲男女视频在线观看| 国产精品素人一区二区| 国产人妻777人伦精品hd| 国产精成人品2018| 欧美精品一区二区三区蜜桃视频 | 美女黄色片视频| 在线视频亚洲欧美中文| 一区二区成人精品| 久久综合色综合| 奇米777欧美一区二区| 99在线高清视频在线播放| 国产三级在线| 天天影视涩香欲综合网 | 日韩不卡在线| 亚洲成av人影院在线观看| 欧美一区二区三区粗大| 99精品福利视频| 69堂成人精品视频免费| 成年人视频在线免费观看| 激情懂色av一区av二区av| 亚洲精品在线视频播放| 成人3d动漫在线观看| 日本三级久久久| 高潮一区二区三区乱码| 1区2区3区欧美| 国产精品人人妻人人爽人人牛| 粉嫩久久久久久久极品| 久久伊人精品一区二区三区| 中文字幕在线观看精品| 久久久久国产免费免费| 黄色免费视频大全| 国产精品中文字幕制服诱惑| 久久艹在线视频| 91无套直看片红桃| 国产日韩成人精品| 国产裸体舞一区二区三区| 老牛影视av一区二区在线观看| 久久在线免费观看视频| 国产一区二区小视频| 国产日韩亚洲欧美综合| 国产1区2区在线| 免费一区二区| 国产91色在线|免| 免费动漫网站在线观看| 色综合色综合色综合色综合色综合 | 蜜桃久久精品成人无码av| 中日韩视频在线观看| 国产一区二区无遮挡| av中文字幕电影在线看| 亚洲精品电影在线观看| 日韩av无码中文字幕| 成人高清在线视频| 2018国产在线| 国产精品22p| 97视频免费看| 欧美大片aaa| 欧美这里有精品| 黄色一级片一级片| 精品亚洲成a人| 影音先锋男人的网站| 国产午夜精品一区在线观看| 久久国产精品影视| 粉嫩av一区二区夜夜嗨| 精品久久久久久中文字幕| 国产网站无遮挡| 日日夜夜一区二区| 亚洲制服中文| 亚洲高清在线一区| 6080yy精品一区二区三区| 你懂的视频在线| 欧美精品自拍偷拍| 激情综合网五月天| 91亚洲大成网污www| 熟妇人妻va精品中文字幕| 日韩影院二区| 国产91aaa| **欧美日韩在线观看| 日韩视频永久免费观看| 精品国产999久久久免费| 亚洲h精品动漫在线观看| 精品欧美一区二区久久久| 久久成人羞羞网站| 蜜臀精品一区二区| 精品国产精品国产偷麻豆| 川上优av一区二区线观看| 爱情岛亚洲播放路线| 国产一区二区三区日韩欧美| 国产又粗又黄视频| 精品久久久久久国产| 成年人看的免费视频| 成人免费观看男女羞羞视频| 亚洲人成无码www久久久| 自拍偷拍欧美| 欧美中日韩一区二区三区| 久久gogo国模啪啪裸体| 日本91av在线播放| 中文字幕在线观看播放| 亚洲日韩欧美视频一区| 国产夫绿帽单男3p精品视频| 欧美日韩国产限制| xxxx日本少妇| 久久久欧美精品sm网站| 香蕉视频在线观看黄| 日韩成人免费在线| 成人黄色av片| 外国成人激情视频| 欧美一区二区高清在线观看| aaa国产精品视频| 国产精品日日摸夜夜添夜夜av| 欧美激情二区| 亚洲日本中文字幕免费在线不卡| 亚洲精品第五页| 欧美剧情片在线观看| 国产精品视频一区在线观看| 一区二区成人在线| 午夜激情视频在线播放| 久久免费看少妇高潮| www.com日本| 国产麻豆91精品| 亚洲福利精品视频| 久久久久国产精品一区三寸| 国产成人永久免费视频| 中文字幕一区二区三区在线视频 | 国产精品劲爆视频| 欧亚av在线| 欧美激情免费视频| 三级资源在线| 久久精品国产电影| 男人在线资源站| 中文字幕亚洲综合久久筱田步美| 色在线免费视频| 亚洲国产精品成人一区二区| 国产av精国产传媒| 69av一区二区三区| 国产一区二区三区四区视频 | 亚洲欧美国产中文| 老司机午夜精品视频| 日日摸日日碰夜夜爽av| 国产欧美大片| 五十路熟女丰满大屁股| 激情综合激情| 91午夜在线观看| 狠狠综合久久| 乱人伦xxxx国语对白| 激情偷拍久久| 国产乱子伦农村叉叉叉| 99精品免费网| 欧美 日本 亚洲| 性欧美暴力猛交另类hd| 免费观看日韩毛片| 免费亚洲一区| 国产97色在线 | 日韩| 丝袜国产日韩另类美女| 美女网站免费观看视频 | 日本少妇一区二区三区| 国产精品一级在线| 蜜臀av粉嫩av懂色av| 99久久精品99国产精品| 日韩一级视频在线观看| 久久久久九九视频| 战狼4完整免费观看在线播放版| 中文字幕第一区| 久久久久久久久久97| 一区二区三区精品在线| 国产精品a成v人在线播放| 欧美性xxxx极品hd满灌| 无码人妻精品一区二区50| 欧美网站大全在线观看| 国产免费高清av| 精品日韩在线观看| 日本高清中文字幕二区在线| 国产亚洲日本欧美韩国| 精品欧美色视频网站在线观看| 欧美超级免费视 在线| 草草在线观看| 国产精品爱久久久久久久| 亚洲国产天堂| 国产欧美日韩综合精品二区| 精品国产aⅴ| 久久久国内精品| 鲁大师成人一区二区三区| 亚洲精品手机在线观看| 成人午夜av在线| 真实乱视频国产免费观看| 亚洲欧洲日韩av| 日韩av电影网| 欧美剧情片在线观看| 亚洲人视频在线观看| 在线观看成人黄色| 国产区美女在线| 国产精品青草久久久久福利99| 最新国产精品精品视频| 日韩中文不卡| 亚洲图片在线| 国产视频手机在线播放| 成人福利视频网站| 成人欧美一区二区三区黑人一 | 日韩熟女一区二区| 日韩一区二区三区视频在线观看| 亚洲欧洲精品视频| 久久精品视频导航| 国模套图日韩精品一区二区| 川上优av一区二区线观看| 国产成人短视频在线观看| 毛片av在线播放| 久久99久久99| 色婷婷av777| 亚洲综合色噜噜狠狠| 最近中文字幕在线免费观看| 日韩hd视频在线观看| 91黄色在线| 国产免费一区二区三区在线观看 | 手机看片福利永久国产日韩| 亚洲调教视频在线观看| 日韩欧美亚洲另类| 国产人成一区二区三区影院| 亚洲国产综合久久| 91精品国产免费| 成人免费一区二区三区视频网站| 97在线观看视频| 欧美高清hd| 亚洲一区bb| 日韩电影在线免费观看| 国产成人无码一区二区在线观看| 一区二区三区国产| 国产精品女人久久久| 在线观看日韩专区| 亚洲不卡系列| 日韩精品极品视频在线观看免费| 国产亚洲午夜| 欧美在线一级片| 亚洲大片免费看| 亚洲精品国产手机| 精品中文字幕在线观看| 99精品美女视频在线观看热舞| 日韩理论片在线观看| 丝袜美腿亚洲色图| 欧美激情aaa| 色老汉av一区二区三区| 青青青免费视频在线2| 91大神福利视频在线| 少妇一区二区三区| 免费成人在线视频网站| 99精品欧美一区| 国产精品久久久久久久妇| 亚洲激情视频网| 亚洲小少妇裸体bbw| 久久久久久久免费| 性欧美长视频| 国产精品成人无码免费| 在线观看区一区二| 成人免费在线电影| 91精品在线影院| 欧美99久久| 人妻互换一二三区激情视频| 亚洲福中文字幕伊人影院| 欧美熟妇交换久久久久久分类| 久久全国免费视频| 奇米影视777在线欧美电影观看| 精品国产一区三区| 久久久综合九色合综国产精品| 亚洲av无码精品一区二区| 在线观看日韩av| 久久久久毛片免费观看| 国产精品va在线观看无码| 不卡大黄网站免费看| 丰满人妻老熟妇伦人精品| 一区二区欧美日韩视频| 亚洲影视资源| 六月婷婷在线视频| 久久久亚洲高清| 夜夜躁很很躁日日躁麻豆| 久久99亚洲精品| 少妇高潮一区二区三区| 免费看涩涩视频| 一二三四社区欧美黄| 青青操视频在线| 国产啪精品视频| 激情欧美日韩| 成人性生交大片免费看无遮挡aⅴ| 在线不卡的av| 嗯~啊~轻一点视频日本在线观看| 你懂的视频在线一区二区| 久久国产麻豆精品| 国产污视频在线看| 国产亚洲美女精品久久久| 精品国产一区二区三区2021| aa在线观看视频| 综合亚洲深深色噜噜狠狠网站| 日本韩国免费观看| 国产精品夜间视频香蕉| 在线欧美亚洲| 最新日韩免费视频| 日韩精品视频中文在线观看| 香蕉久久久久久| 女人扒开屁股爽桶30分钟| 一区二区三区国产| 日本在线视频网| 久久久精品动漫|