亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > iOS > 正文

iOS實現(xiàn)轉(zhuǎn)場動畫的3種方法示例

2019-10-21 18:21:59
字體:
供稿:網(wǎng)友

什么是轉(zhuǎn)場動畫

在 NavigationController 里 push 或 pop 一個 View Controller,在 TabBarController 中切換到其他 View Controller,以 Modal 方式顯示另外一個 View Controller,這些都是 View Controller Transition。在 storyboard 里,每個 View Controller 是一個 Scene,View Controller Transition 便是從一個 Scene 轉(zhuǎn)換到另外一個 Scene, 中文稱呼其為「轉(zhuǎn)場」。 顧名思義,轉(zhuǎn)場動畫便是 View Controller Transition 過程中的動畫效果。

在 iOS 7 之前,我們只能使用系統(tǒng)提供的轉(zhuǎn)場效果,大部分時候夠用,但僅僅是夠用而已,總歸會有各種不如意的小地方,但我們卻無力改變;iOS 7 開放了相關(guān) API 允許我們對轉(zhuǎn)場效果進行全面定制,這太棒了,自定義轉(zhuǎn)場動畫以及對交互手段的支持帶來了無限可能。

本文主要給大家介紹了關(guān)于iOS實現(xiàn)轉(zhuǎn)場動畫的3種方法,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

1.CATransition

CATransition是CAAnimation的子類,用于過渡動畫或轉(zhuǎn)場動畫。為視圖層移入移除屏幕提供轉(zhuǎn)場動畫。首先來看一下簡單的Demo:

 CATransition *animation = [CATransition animation]; animation.type = kCATransitionFade; animation.subtype = kCATransitionFromRight; animation.duration = 1.0; // 在window上執(zhí)行CATransition, 即可在ViewController轉(zhuǎn)場時執(zhí)行動畫 [self.view.window.layer addAnimation:animation forKey:@"kTransitionAnimation"];  AViewController *vc = [[AViewController alloc] init]; [self presentViewController:vc animated:NO completion:nil];

將該動畫添加到window.layer上,則會present或push時使用指定的轉(zhuǎn)場動畫。

其中最主要的兩個屬性就是type和subtype。

  • type:轉(zhuǎn)場動畫的類型。

官方SDK只提供了四種轉(zhuǎn)場動畫的類型,即:

CA_EXTERN NSString * const kCATransitionFade;CA_EXTERN NSString * const kCATransitionMoveIn;CA_EXTERN NSString * const kCATransitionPush;CA_EXTERN NSString * const kCATransitionReveal;

私有的type:

NSString *const kCATransitionCube = @"cube"; NSString *const kCATransitionSuckEffect = @"suckEffect"; NSString *const kCATransitionOglFlip = @"oglFlip"; NSString *const kCATransitionRippleEffect = @"rippleEffect"; NSString *const kCATransitionPageCurl = @"pageCurl"; NSString *const kCATransitionPageUnCurl = @"pageUnCurl"; NSString *const kCATransitionCameraIrisHollowOpen = @"cameraIrisHollowOpen";NSString *const kCATransitionCameraIrisHollowClose = @"cameraIrisHollowClose";
  • subtype:動畫類型的方向
CA_EXTERN NSString * const kCATransitionFromRight;CA_EXTERN NSString * const kCATransitionFromLeft;CA_EXTERN NSString * const kCATransitionFromTop;CA_EXTERN NSString * const kCATransitionFromBottom;

上面講的是給window.layer添加transition,這樣使得在present或push時使用指定的轉(zhuǎn)場動畫。

既然講到這里了,就看一下把transition加在layer上。

看一下示例代碼:

- (void)viewDidLoad { [super viewDidLoad];  UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 100, 50)];  [button setTitle:@"進入" forState:UIControlStateNormal];  button.backgroundColor = [UIColor redColor];  [button addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:button];  _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 300, 150, 150)]; [self.view addSubview:_imageView]; _imageView.backgroundColor = [UIColor redColor]; _imageArray = @[[UIImage imageNamed:@"成果秀1"],[UIImage imageNamed:@"點贊他人1"],[UIImage imageNamed:@"偷師學藝1"],[UIImage imageNamed:@"學會欣賞3"]];  _imageView.image = [UIImage imageNamed:@"成果秀1"];}- (void)buttonClicked{  CATransition *animation = [CATransition animation]; animation.type = @"cube"; animation.subtype = kCATransitionFromRight; animation.duration = 1.0; //換圖片的時候使用轉(zhuǎn)場動畫 [self.imageView.layer addAnimation:animation forKey:nil]; //cycle to next image UIImage *currentImage = self.imageView.image; NSUInteger index = [self.imageArray indexOfObject:currentImage]; index = (index + 1) % [self.imageArray count]; self.imageView.image = self.imageArray[index]; }

2.transitionFromViewController

UIViewController自帶的方法:
transitionFromViewController:toViewController:duration:options:animations:completion:這個轉(zhuǎn)場動畫是用在當一個父視圖控制器中有幾個childViewController,當要在這幾個子視圖控制器之間切換時就可以用這個方法。

AViewController *a = self.childViewControllers[0];BViewController *b = self.childViewControllers[1];CViewController *c = self.childViewControllers[2];// Curl 翻頁效果// UIViewAnimationOptionTransitionCurlUp, UIViewAnimationOptionTransitionCurlDown// Flip 翻轉(zhuǎn)效果// UIViewAnimationOptionTransitionFlipFromLeft, UIViewAnimationOptionTransitionFlipFromRight// UIViewAnimationOptionTransitionFlipFromTop, UIViewAnimationOptionTransitionFlipFromDown[self transitionFromViewController:_currentViewController   toViewController:b    duration:0.5    options:UIViewAnimationOptionTransitionFlipFromRight   animations:^{} completion:^(BOOL finished) {}];

3.Transition Animation

1 UINavigationControllerDelegate + UIViewControllerAnimatedTransitioning

在UINavigationController的轉(zhuǎn)場動畫中,要指定UINavigationControllerDelegate對象:

self.navigationController.delegate = self;[self.navigationController pushViewController:itemVC animated:YES];

UINavigationControllerDelegate主要有以下兩個協(xié)議方法:

//pop- (nullable id <UIViewControllerInteractiveTransitioning>)navigationController:(UINavigationController *)navigationController       interactionControllerForAnimationController:(id <UIViewControllerAnimatedTransitioning>) animationController NS_AVAILABLE_IOS(7_0);//push- (nullable id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController         animationControllerForOperation:(UINavigationControllerOperation)operation            fromViewController:(UIViewController *)fromVC             toViewController:(UIViewController *)toVC NS_AVAILABLE_IOS(7_0);

首先創(chuàng)建一個基類PDAnimatorBaseTransition實現(xiàn)UIViewControllerAnimatedTransitioning協(xié)議的方法。

UIViewControllerAnimatedTransitioning協(xié)議的方法有:

//動畫持續(xù)時間- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext;//轉(zhuǎn)場動畫實現(xiàn)細節(jié)- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext;動畫結(jié)束時調(diào)用- (void)animationEnded:(BOOL) transitionCompleted;

PDAnimatorBaseTransition.h

#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>typedef NS_ENUM(NSInteger, PDAnimationType){  animationTypePresent = 0, animationTypeDismiss , animationTypePush , animationTypePop,};@interface PDAnimatorBaseTransition : NSObject <UIViewControllerAnimatedTransitioning>@property (nonatomic, assign)PDAnimationType animationType;@property (nonatomic, strong)UIView *containerView;@property (nonatomic, strong)UIViewController *from;@property (nonatomic, strong)UIViewController *to;@property (nonatomic, strong)UIView *fromView;@property (nonatomic, strong)UIView *toView;@property (nonatomic, weak)id <UIViewControllerContextTransitioning> transitionContext;@end

PDAnimatorBaseTransition.m

#import "PDAnimatorBaseTransition.h"@interface PDAnimatorBaseTransition() @end@implementation PDAnimatorBaseTransition#pragma mark -required- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext{  return 1.f;}- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext{  _transitionContext = transitionContext;  _containerView = [transitionContext containerView];  _from = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];  _to = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];  if([transitionContext respondsToSelector:@selector(viewForKey:)]){    _fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];  _toView = [transitionContext viewForKey:UITransitionContextToViewKey]; }else{    _fromView = _from.view;  _toView = _to.view; }  if(self.animationType == animationTypePresent){    [self animationPresent]; }else if (self.animationType == animationTypeDismiss){    [self animationDismiss]; }else if (self.animationType == animationTypePop){    [self animationPop]; }else{    [self animationPush]; } }#pragma mark -optional//動畫結(jié)束時回調(diào)- (void)animationEnded:(BOOL) transitionCompleted{ }- (void)animationPresent{ }- (void)animationDismiss{}- (void)animationPop{ }- (void)animationPush{ }

然后創(chuàng)建子類PDAnimatorPUshPopTransition繼承自PDAnimatorBaseTransition,實現(xiàn)- (void)animationPush,- (void)animationPop方法。

PDAnimatorPUshPopTransition.h

#import "PDAnimatorBaseTransition.h"#import <UIKit/UIKit.h>@interface PDAnimatorPUshPopTransition : PDAnimatorBaseTransition@property (nonatomic, assign)CGPoint itemCenter;@property (nonatomic, assign)CGSize itemSize;@property (nonatomic, strong)NSString *imageName;@end

PDAnimatorPUshPopTransition.m

#import "PDAnimatorPUshPopTransition.h"@implementation PDAnimatorPUshPopTransition- (instancetype)init{  self = [super init]; if(self){     }  return self;}- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext{  return 5.f;}- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext{  [super animateTransition:transitionContext];}- (void)animationPush{  NSTimeInterval duration = [self transitionDuration:self.transitionContext]; __weak typeof(self) weakSelf = self;  self.containerView.backgroundColor = [UIColor lightGrayColor];  UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 160)]; imageView.image = [UIImage imageNamed:self.imageName]; imageView.center = _itemCenter;  CGFloat initialScale = _itemSize.width / CGRectGetWidth(imageView.frame);  CGAffineTransform transform = CGAffineTransformIdentity;  transform = CGAffineTransformScale(transform, initialScale, initialScale); transform = CGAffineTransformRotate(transform, M_PI);  imageView.layer.affineTransform = transform;  // imageView.transform = CGAffineTransformMakeScale(initialScale, initialScale);  [self.containerView addSubview:imageView];   self.toView.frame = [self.transitionContext finalFrameForViewController:self.to]; CGPoint finalCenter = self.toView.center; self.toView.center = finalCenter; self.toView.alpha = 0.0; //這一句一定要 [self.containerView addSubview:self.toView];  [UIView animateWithDuration:duration delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:0 options:UIViewAnimationOptionCurveLinear animations:^{    imageView.layer.affineTransform = CGAffineTransformIdentity;    imageView.center = finalCenter;    self.fromView.alpha = 0.0;  self.containerView.backgroundColor = [UIColor redColor]; } completion:^(BOOL finished){    [imageView removeFromSuperview];    weakSelf.toView.alpha = 1.0f;  weakSelf.fromView.alpha = 1.0f;    [weakSelf.transitionContext completeTransition:![weakSelf.transitionContext transitionWasCancelled]]; }]; }- (void)animationPop{  NSTimeInterval duration = [self transitionDuration:self.transitionContext]; __weak typeof(self) weakSelf = self;  self.toView.frame = [self.transitionContext finalFrameForViewController:self.to];  [self.containerView insertSubview:self.toView belowSubview:self.fromView];  self.fromView.alpha = 0.0;  self.fromView.backgroundColor = [UIColor clearColor];  [UIView animateWithDuration:duration delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:0 options:UIViewAnimationOptionCurveLinear animations:^{    CGFloat initialScale = _itemSize.width / 200;  weakSelf.fromView.transform = CGAffineTransformMakeScale(initialScale, initialScale);  weakSelf.fromView.center = weakSelf.itemCenter;    weakSelf.toView.alpha = 1.0f; } completion:^(BOOL finished){    weakSelf.fromView.alpha = 0.0f;    [weakSelf.transitionContext completeTransition:![weakSelf.transitionContext transitionWasCancelled]]; }];}@end

然后我們在需要push的地方實現(xiàn)UINavigationControllerDelegate的協(xié)議方法:

- (nullable id <UIViewControllerAnimatedTransitioning>)navigationController:(UINavigationController *)navigationController           animationControllerForOperation:(UINavigationControllerOperation)operation               fromViewController:(UIViewController *)fromVC               toViewController:(UIViewController *)toVC NS_AVAILABLE_IOS(7_0){  PDAnimatorPUshPopTransition *animationTransition = [[PDAnimatorPUshPopTransition alloc] init]; if(operation == UINavigationControllerOperationPush){    animationTransition.animationType = animationTypePush; }else if (operation == UINavigationControllerOperationPop){    animationTransition.animationType = animationTypePop; }  NSArray *indexPaths = [self.collectionView indexPathsForSelectedItems]; if (indexPaths.count == 0) {  return nil; }  NSIndexPath *selectedIndexPath = indexPaths[0]; UICollectionViewCell *cell = [self.collectionView cellForItemAtIndexPath:selectedIndexPath];  // 一定要加上convertPoint:toView:操作 animationTransition.itemCenter = [self.collectionView convertPoint:cell.center toView:self.view]; animationTransition.itemSize = cell.frame.size; animationTransition.imageName = [NSString stringWithFormat:@"%ld", (long)selectedIndexPath.item];  return animationTransition;}

2 UIViewControllerTransitioningDelegate+UIViewControllerAnimatedTransitioning

首先需要設(shè)置被present的Controller的transitionDelegate

DemoViewControllerTransitionPresentedViewController *presentedVC = [[DemoViewControllerTransitionPresentedViewController alloc] init];presentedVC.transitionDelegate = self;[self presentViewController:presentedVC animated:YES completion:nil];

UIViewControllerTransitioningDelegate的代理的協(xié)議方法有:

//  prenent  - (id )animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source;//  pop  - (id )animationControllerForDismissedController:(UIViewController *)dismissed;//  prenent  - (id )interactionControllerForPresentation:(id )animator;//  pop  - (nullable id )interactionControllerForDismissal:(id )animator;

創(chuàng)建子類PDAnimationPresentTransitio繼承自基類PDAnimatorBaseTransition,實現(xiàn)- (void)animationPresent,- (void)animationDismiss方法。

PDAnimationPresentTransition.h

#import "PDAnimatorBaseTransition.h"@interface PDAnimationPresentTransition : PDAnimatorBaseTransition@end

PDAnimationPresentTransition.m

#import "PDAnimationPresentTransition.h"@implementation PDAnimationPresentTransition- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext{  return 1.f;}- (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext{ [super animateTransition:transitionContext];}- (void)animationPresent{  NSTimeInterval duration = [self transitionDuration:self.transitionContext]; __weak typeof(self) weakSelf = self;  self.toView.frame = [self.transitionContext initialFrameForViewController:self.to];  self.fromView.frame = [self.transitionContext initialFrameForViewController:self.from];  CGAffineTransform transform = CGAffineTransformIdentity; transform = CGAffineTransformScale(transform, 0.001, 0.001); self.toView.layer.affineTransform = transform;  [self.containerView addSubview:self.toView];  self.toView.alpha = 0.0;  [UIView animateWithDuration:duration delay:0 usingSpringWithDamping:0.6 initialSpringVelocity:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{    self.toView.layer.affineTransform = CGAffineTransformIdentity;  self.toView.frame = [self.transitionContext finalFrameForViewController:self.to];  self.toView.alpha = 1.0; } completion:^(BOOL finished){    BOOL wasCancelled = [weakSelf.transitionContext transitionWasCancelled];  [weakSelf.transitionContext completeTransition:!wasCancelled]; }]; }

然后我們在需要present的地方實現(xiàn)UIViewControllerTransitioningDelegate的代理方法。

- (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source{  PDAnimationPresentTransition *animationTransition = [[PDAnimationPresentTransition alloc] init]; animationTransition.animationType = animationTypePresent; return animationTransition;}- (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed{  PDAnimationPresentTransition *animationTransition = [[PDAnimationPresentTransition alloc] init]; animationTransition.animationType = animationTypePresent; return animationTransition;}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
日本一本高清视频| 久久综合综合久久综合| 欧美在线观看成人| 在线中文字幕视频观看| 国产免费一区视频观看免费| 欧美成人福利| 5566中文字幕一区二区| 久久av老司机精品网站导航| 国内成人在线| 美女精品一区最新中文字幕一区二区三区| 亚洲精品国产无套在线观| 成人免费一级视频| 任你弄在线视频免费观看| 国产在线激情视频| 91在线直播亚洲| 久久婷婷国产91天堂综合精品| 色婷婷av久久久久久久| 日韩欧美在线免费观看| 图片区日韩欧美亚洲| 亚洲午夜精品一区二区国产| 99国产精品一区二区三区| 久久精品女人的天堂av| 日韩欧美国产精品一区| 亚洲人辣妹窥探嘘嘘| 奇米亚洲欧美| 免费在线看黄网站| 欧美激情自拍偷拍| 中文字幕日韩精品一区| 黑人玩欧美人三根一起进| t66y最新发布地址| 国产精品sm调教免费专区| gogogo高清在线观看免费完整版| 欧美日韩福利在线观看| 国产精品久久久久久模特| 国产精品二区一区二区aⅴ污介绍| 欧美三级电影在线播放| 国产一区精品| 国产91精品精华液一区二区三区| 91精品国产91久久久久久吃药| 久久在线中文字幕| 性做久久久久久久久| 在线免费视频福利| 久久久女人电视剧免费播放下载| www.日韩在线观看| 国产欧美精品久久| 亚洲精品毛片一区二区三区| 久久久久久美女| 精品人妻一区二区三区免费| 欧美精品一二三四区| 国产成人av自拍| 日韩黄色精品视频| 国产一区二区在线观看免费播放| 国产麻豆视频在线观看| 丁香花高清视频完整版在线观看| 久久午夜宅男免费网站| 日本中文字幕在线视频观看| 欧美自拍大量在线观看| 999精品在线| 日本中文字幕视频一区| 精品久久五月天| 蜜桃tv在线播放| 激情校园亚洲图片| 成人免费毛片app| 国产主播在线观看| 亚洲麻豆国产自偷在线| 国产免费一区二区三区在线观看| 色偷偷av一区二区三区| 色wwwwww| 日韩三级中文字幕| 在线观看涩涩| 天天操天天爱天天爽| 国产欧美一区二区三区久久人妖| www.91av视频.com| 欧美亚洲黄色片| 亚洲一区二区影院| 尤物视频网址| 超碰在线国产97| 欧美羞羞免费网站| 日韩中文字幕观看| 亚洲成人国产精品| 伊人开心综合网| 国产porny蝌蚪视频| 欧美在线播放视频| 日韩影片中文字幕| 一本色道久久综合亚洲二区三区| 日韩毛片久久久| 欧美亚日韩国产aⅴ精品中极品| 日韩三级高清在线| 国产小视频在线| 国产精品亚洲自拍| 亚洲动漫在线观看| 91精品在线播放| 亚洲狠狠婷婷综合久久蜜桃| 久热在线中文字幕色999舞| 日本欧美国产| 无遮挡爽大片在线观看视频| xxxx欧美| 久久九九精品99国产精品| av毛片在线播放| 中文字幕av片| 性色av蜜臀av浪潮av老女人| 熟女人妇 成熟妇女系列视频| 黄色三级视频在线观看| 麻豆chinese极品少妇| 日本在线观看天堂男亚洲| 好吊日av在线| 日韩美女精品在线| 亚洲欧美另类日本| 国产夫妻在线播放| 超碰国产在线观看| 女人被男人躁得好爽免费视频| a级片免费在线观看| 麻豆系列在线观看| 国内外成人免费在线视频| 日韩综合一区二区三区| 亚洲综合视频网站| 九色在线视频| 欧美一二三区视频| 9999在线精品视频| 欧美老头gaygay1069| 国产精品一区二区久久不卡| 在线观看av免费观看| 欧美人与动性xxxxx杂性| shkd中文字幕久久在线观看| 精品一区二区三区的国产在线观看| 韩国午夜理伦三级不卡影院| 三级小说欧洲区亚洲区| 久久国产婷婷国产香蕉| 1024成人网色www| 日韩高清av一区二区三区| 99c视频在线| 日韩中文字幕网址| 欧美精品成人一区二区三区四区| 2020中文字字幕在线不卡| 精品一区毛片| 久久精品99| 波多野结衣在线| 亚洲天堂av在线免费观看| 成人综合婷婷国产精品久久蜜臀| 日本亚洲三级在线| 欧美在线短视频| 欧美亚洲大片| 国产精品一区二区3区| 天天干天天草天天| 一区二区视频欧美| 性欧美freesex顶级少妇| 99久久婷婷| 蜜桃麻豆影像在线观看| 色噜噜狠狠色综合欧洲selulu| 日本五十肥熟交尾| 国产精品v欧美精品v日本精品动漫| 亚洲一区自拍偷拍| 中文字幕+乱码+中文字幕一区| 日本少妇色视频| www夜片内射视频日韩精品成人| 欧美精品手机在线| 亚洲人妖在线| 国产美女视频网站| 一区二区视频播放| 蜜臀av亚洲一区中文字幕| 色婷婷狠狠五月综合天色拍| 久久精品日产第一区二区三区乱码| 中文字幕人妻一区二区| www.久久久精品| 久久天堂夜夜一本婷婷麻豆| 国产精品伦理在线| 欧美丰满老妇厨房牲生活| 国产手机视频一区二区| 欧美日本在线播放| 国产草草浮力影院| 色棕色天天综合网| 亚洲韩国一区二区三区| 成人激情免费电影网址| 成人a免费在线看| 欧美综合第一页| 激情五月色综合亚洲小说| 国产精品久久久久久久久久辛辛| 亚洲中文无码av在线| 国产高潮呻吟久久| 人善交video高清| 久久视频在线观看| 欧美区高清在线| 亚洲欧美精品日韩欧美| 欧美特级特黄aaaaaa在线看| 国产桃色电影在线播放| 外国电影一区二区| 小视频免费在线观看| 国产精品久久久久久久久| 色综合色综合久久综合频道88| 91午夜国产| 国产精品一在线观看| 91成品人影院| 91成人入口| 亚洲午夜小视频| 国产精品伦理一区二区三区| 疯狂蹂躏欧美一区二区精品| 精品视频在线观看一区二区| 色偷偷亚洲男人天堂| 九一国产精品| 亚洲色图偷拍视频| 婷婷色综合网| 又黄又爽无遮挡| 欧美日韩大片在线观看| 日本簧片在线观看| 色999国产精品| 日韩视频在线观看一区| 日本不卡视频一区二区| 成人国产免费视频| 妺妺窝人体色www在线下载| 久久久久一区| 无码免费一区二区三区| 久久久久亚洲av成人毛片韩| 久久精品久久国产| 成人少妇影院yyyy| 国产91丝袜在线观看| 国产69久久精品成人看| 狠狠v欧美ⅴ日韩v亚洲v大胸| 国产一二三区在线播放| 色噜噜狠狠一区二区三区| 99伊人久久| 亚洲伊人第一页| 国产日本欧美一区二区三区| 天堂√8在线中文| 亚洲精品久久久成人| 不卡日本视频| 日韩精品在线看片z| 中文字幕制服丝袜| 欧美激情一区二区三区p站| 91麻豆精品国产91久久久久久| 国产亚洲精品久久久久久移动网络| 国产色产综合产在线视频| 中文字幕精品—区二区| 久久久精品国产免大香伊| 中文字幕无码乱码人妻日韩精品| 69视频在线免费观看| 久久66热这里只有精品| 中文天堂在线资源| 狠狠入ady亚洲精品| 日本精品久久电影| 国内免费精品视频| 成人精品影院| 日韩黄色中文字幕| 国产黄色片免费看| 97精品人妻一区二区三区香蕉| 9i在线看片成人免费| 亚洲免费视频成人| 国产精品一区二区三区四区五区| av在线不卡观看| 99re在线视频这里只有精品| 欧美一区二区视频观看视频| av无码精品一区二区三区宅噜噜| 神马电影久久| 国产精品久久久乱弄| 一本一道波多野结衣一区二区| 国产第一页在线视频| 高潮在线视频| 91精品啪在线观看麻豆免费| 免费久久精品视频| 精品人人视频| 日韩a∨精品日韩在线观看| 末成年女av片一区二区下载| 成人欧美在线视频| 91福利视频在线观看| 57pao精品| 一级做a爱片久久毛片| 福利视频一区二区三区四区| 亚洲国内精品视频| 高清久久精品| 久久久久国产精品一区二区| 中文字幕22页| 3751色影院一区二区三区| 欧美日韩一区二区三区四区五区| 国产精品国产亚洲伊人久久| 久久视频在线视频| 国产精品视频中文字幕91| 99久久精品一区二区| 综合图区亚洲白拍在线| 亚洲精华国产精华精华液网站| 96精品久久久久中文字幕| 亚洲综合中文字幕68页| 日韩三级av高清片| 情趣视频网站在线免费观看| 比比资源先锋影音网| 一区二区自拍偷拍| 国产精品av一区二区三区| 欧美日韩国产小视频在线观看| 一区三区二区视频| aaa黄色大片| 中文幕av一区二区三区佐山爱| 97人摸人人澡人人人超一碰| 欧美三级视频在线| 永久免费看片视频教学| 78精品国产综合久久香蕉| 韩日视频在线| 国产经品一区二区| 中文日产幕无线码一区二区| 欧美一区二区三区四区五区六区| 影音先锋久久精品| 91麻豆.com| 暧暧视频在线免费观看| 91成人精品| www.在线观看av| 成人在线免费观看一区| 免费毛片在线播放免费| 91午夜在线播放| 粉嫩av国产一区二区三区| 第四色中文综合网| 欧美激情一区二区三区| 精品视频一区二区在线| 踪合国产第二页| 青青草免费观看免费视频在线| 正在播放一区二区三区| 国产一级大片| 成人ar影院免费观看视频| wwwwww在线观看| 中国丰满人妻videoshd| 四虎成人欧美精品在永久在线| 日韩亚洲欧美在线| 91av免费观看91av精品在线| hd100%videos日本| 国产精品一区二区午夜嘿嘿嘿小说| 国产精品福利小视频| 丁香婷婷综合激情| 亚洲欧洲免费| 韩国自拍一区| 噜噜噜在线观看免费视频日韩| 日本久久精品视频| 久久久久久国产精品mv|