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

首頁 > 系統 > iOS > 正文

iOS開發中視圖的下拉放大和上拉模糊的效果實現

2020-07-26 03:34:13
字體:
來源:轉載
供稿:網友

把"秘密"的Cell效果整體視圖都放到scrollView中,基本是和secret app 一模一樣的效果了.
代碼如下:(模糊效果的類就不寫了,大家可以搜"UIImage+ImageEffects",還要導入Accelerate.framework)
1.MTSecretAppEffect.h

復制代碼 代碼如下:

#import <Foundation/Foundation.h> 
 
@interface MTSecretAppEffect : NSObject 
 
/**
 *  創建整體的scrollView,把headScrollView和tableView全部加載在上面,靠它來上下滑動,其余的滑動全部禁止
 *
 *  @return mainScrollView
 */ 
- (UIScrollView *)createMainScrollView; 
 
/**
 *  創建headScrollView
 *
 *  @return headScrollView
 */ 
- (UIScrollView *)createHeadScrollView; 
 
/**
 *  創建頭部的模糊view
 *
 *  @param scrollview headScrollView
 *
 *  @return blurImageView
 */ 
- (UIImageView *)createBlurImageViewOfView:(UIScrollView *)scrollview; 
 
/**
 *  在- (void)scrollViewDidScroll:(UIScrollView *)scrollView 中調用的方法
 *
 *  @param scrollView
 *  @param mainScrollView
 *  @param tableView
 *  @param headScrollView
 *  @param blurImageView
 */ 
- (void)scrollDidScrollView:(UIScrollView *)scrollView withMainScrollView:(UIScrollView *)mainScrollView withTableView:(UITableView *)tableView withHeadScrollView:(UIScrollView *)headScrollView withBlurImageView:(UIImageView *)blurImageView; 
@end 


2.MTSecretAppEffect.m
復制代碼 代碼如下:

#import "MTSecretAppEffect.h" 
#import "UIImage+ImageEffects.h" 
#import <QuartzCore/QuartzCore.h> 
 
#define HEADER_HEIGHT 200.0f 
#define HEADER_INIT_FRAME CGRectMake(0, 0, 320, HEADER_HEIGHT) 
 
const CGFloat kBarHeight = 50.0f; 
const CGFloat kBackgroundParallexFactor = 0.5f; 
const CGFloat kBlurFadeInFactor = 0.015f; 
 
 
@implementation MTSecretAppEffect 
 
// 欠缺:調用者設置代理 
- (UIScrollView *)createMainScrollView{ 
 
    // 和Self.view同大小的底部ScrollView 
    UIScrollView *mainScrollView = [[UIScrollView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.frame]; 
    mainScrollView.bounces = YES; 
    mainScrollView.alwaysBounceVertical = YES; 
    mainScrollView.contentSize = CGSizeZero; 
    mainScrollView.showsVerticalScrollIndicator = YES; 
    mainScrollView.scrollIndicatorInsets = UIEdgeInsetsMake(50.0f, 0, 0, 0); 
 
    return mainScrollView; 
     

 
- (UIScrollView *)createHeadScrollView{ 
 
    UIScrollView *headScrollView = [[UIScrollView alloc] initWithFrame:HEADER_INIT_FRAME]; 
    headScrollView.scrollEnabled = NO; 
    headScrollView.contentSize = CGSizeMake(320, 1000); 
     
    return headScrollView; 

 
- (UIImageView *)createBlurImageViewOfView:(UIScrollView *)scrollview{ 
 
    UIGraphicsBeginImageContextWithOptions(scrollview.bounds.size, scrollview.opaque, 0.0); 
    [scrollview.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    UIImageView *blurImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, HEADER_HEIGHT)]; 
    blurImageView.image = [img applyBlurWithRadius:12 tintColor:[UIColor colorWithWhite:0.8 alpha:0.4] saturationDeltaFactor:1.8 maskImage:nil]; 
    blurImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    blurImageView.alpha = 0; 
    blurImageView.backgroundColor = [UIColor clearColor]; 
     
    return blurImageView; 

 
- (void)scrollDidScrollView:(UIScrollView *)scrollView withMainScrollView:(UIScrollView *)mainScrollView withTableView:(UITableView *)tableView withHeadScrollView:(UIScrollView *)headScrollView withBlurImageView:(UIImageView *)blurImageView{ 
     
    CGFloat y = 0.0f; 
    CGRect rect = HEADER_INIT_FRAME;  
    if (scrollView.contentOffset.y < 0.0f) { 
        // 下拉變大效果 
        y = fabs(MIN(0.0f, mainScrollView.contentOffset.y)); 
        headScrollView.frame = CGRectMake(CGRectGetMinX(rect) - y / 2.0f, CGRectGetMinY(rect) - y, CGRectGetWidth(rect) + y, CGRectGetHeight(rect) + y); 
         
    } 
    else { 
         
        y = mainScrollView.contentOffset.y; 
        blurImageView.alpha = MIN(1 , y * kBlurFadeInFactor); 
        CGFloat backgroundScrollViewLimit = headScrollView.frame.size.height - kBarHeight; 
         
        if (y > backgroundScrollViewLimit) { 
            headScrollView.frame = (CGRect) {.origin = {0, y - headScrollView.frame.size.height + kBarHeight}, .size = {320, HEADER_HEIGHT}}; 
            tableView.frame = (CGRect){.origin = {0, CGRectGetMinY(headScrollView.frame) + CGRectGetHeight(headScrollView.frame)}, .size = tableView.frame.size }; 
            tableView.contentOffset = CGPointMake (0, y - backgroundScrollViewLimit); 
            CGFloat contentOffsetY = -backgroundScrollViewLimit * kBackgroundParallexFactor; 
            [headScrollView setContentOffset:(CGPoint){0,contentOffsetY} animated:NO]; 
        } 
        else { 
            headScrollView.frame = rect; 
            tableView.frame = (CGRect){.origin = {0, CGRectGetMinY(rect) + CGRectGetHeight(rect)}, .size = tableView.frame.size }; 
            [tableView setContentOffset:(CGPoint){0,0} animated:NO]; 
            [headScrollView setContentOffset:CGPointMake(0, -y * kBackgroundParallexFactor)animated:NO]; 
        } 
    } 
 

 
@end 


3.main.m
復制代碼 代碼如下:

#import "RootViewController.h" 
#import "CommentCell.h" 
#import "MTSecretAppEffect.h" 
 
#define HEADER_HEIGHT 200.0f 
 
@interface RootViewController () <UIScrollViewDelegate, UITableViewDataSource, UITableViewDelegate> 
 
@property (nonatomic,strong) MTSecretAppEffect *secretEffect;     // secretApp 效果對象 
@property (nonatomic,strong) UIScrollView *mainScrollView;        // 與view相同大小的scrollView 
@property (nonatomic,strong) UIScrollView *headScrollView;        // 
@property (nonatomic,strong) UIImageView  *blurImageView;         // 
@property (nonatomic,strong) UITableView *tableView;              // 
 
@end 
 
@implementation RootViewController 
 
- (void)viewDidLoad 

    [super viewDidLoad]; 
     
     
    // 0.創建SecretApp effect 效果對象 
    self.secretEffect = [[MTSecretAppEffect alloc] init]; 
    // 1.主底部scrollView 
    self.mainScrollView = [self.secretEffect createMainScrollView]; 
    self.mainScrollView.delegate = self; 
    self.view = self.mainScrollView; 
    // 2.head背景View 
    self.headScrollView = [self.secretEffect createHeadScrollView]; 
    // 3.背景圖片視圖 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, HEADER_HEIGHT)]; 
    imageView.image = [UIImage imageNamed:@"secret.png"]; 
    imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    [self.headScrollView  addSubview:imageView]; 
    // 4.模糊視圖 
    _blurImageView = [self.secretEffect createBlurImageViewOfView:self.headScrollView]; 
    [self.headScrollView addSubview:_blurImageView]; 
    // 5.tableView 
    self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, HEADER_HEIGHT, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame) - 50 ) style:UITableViewStylePlain]; 
    self.tableView.scrollEnabled = NO; 
    self.tableView.delegate = self; 
    self.tableView.dataSource = self; 
    self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 
    self.tableView.separatorColor = [UIColor clearColor]; 
    // 6.添加視圖 
    [self.view addSubview:self.headScrollView]; 
    [self.view addSubview:self.tableView]; 
    // 7.設置一下 
    self.mainScrollView.contentSize = CGSizeMake(320, self.tableView.contentSize.height + CGRectGetHeight(self.headScrollView.frame)); 
 

 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
     
    // 8.調用方法 
    [self.secretEffect scrollDidScrollView:scrollView withMainScrollView:self.mainScrollView withTableView:self.tableView withHeadScrollView:self.headScrollView withBlurImageView:self.blurImageView]; 

 
 
#pragma mark - 隱藏狀態欄 
- (BOOL)prefersStatusBarHidden { 
    return YES; 

 
 
#pragma mark - UITableView dataSource 
 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 

 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return 20; 

 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
     
    return 40; 

 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     
    CommentCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell %ld", indexPath.row]]; 
    if (!cell) { 
        cell = [[CommentCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Cell %ld", indexPath.row]]; 
    } 
    cell.textLabel.text = [NSString stringWithFormat:@"section = %ld row = %ld",indexPath.section,indexPath.row]; 
 
    return cell; 

 
- (void)didReceiveMemoryWarning 

    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 

 
@end  
                
效果圖:
PPPPPPPPPPPPPPPPPPPPPP1
它主要效果:下拉頭部視圖放大,上拉視圖模糊而且到一定位置固定不動,其他Cell可以繼續上移.
封裝的主要效果類:MTHeadEffect.m(.h文件省略,很簡單的)

復制代碼 代碼如下:

#import "MTHeadEffect.h" 
#import <QuartzCore/QuartzCore.h> 
#import <Accelerate/Accelerate.h> 
 
// 屏幕的物理寬度 
#define ScreenWidth  [UIScreen mainScreen].bounds.size.width 
#define HeadViewH  40 
 
CGFloat const kImageOriginHight = 200.f; 
 
@implementation MTHeadEffect 
 
+ (void)viewDidScroll:(UIScrollView *)tableView withHeadView:(UIImageView *)headView withBlur:(CGFloat)blur{ 
 
    NSLog(@"y = %f",tableView.contentOffset.y); 
    if (tableView.contentOffset.y > kImageOriginHight - HeadViewH) { 
         
        headView.frame = CGRectMake(0, -(kImageOriginHight - HeadViewH), ScreenWidth, kImageOriginHight); 
        [[UIApplication sharedApplication].keyWindow addSubview:headView]; 
         
    }else if ((tableView.contentOffset.y < kImageOriginHight - HeadViewH) && tableView.contentOffset.y > 0){ 
         
        blur = (tableView.contentOffset.y) / 500.0 + 0.45; 
        headView.image = [[UIImage imageNamed:@"2"] boxblurImageWithBlur:blur]; 
        headView.frame = CGRectMake(0, 0, ScreenWidth, kImageOriginHight); 
        [tableView addSubview:headView]; 
         
    }else if (tableView.contentOffset.y <= 0){ 
         
        // 放大效果---x,y坐標的增量和寬度,高度的增量保持一致 
        CGFloat offset  = -tableView.contentOffset.y; 
        headView.frame = CGRectMake(-offset,-offset, ScreenWidth+ offset * 2, kImageOriginHight + offset); 
        headView.image = [[UIImage imageNamed:@"2"] boxblurImageWithBlur:0.01]; 
    } 
     

 
@end 
 
@implementation UIImage (BlurEffect) 
 
// 為高斯模糊效果封裝的一個類目 
-(UIImage *)boxblurImageWithBlur:(CGFloat)blur { 
     
    NSData *imageData = UIImageJPEGRepresentation(self, 1); // convert to jpeg 
    UIImage* destImage = [UIImage imageWithData:imageData]; 
     
     
    if (blur < 0.f || blur > 1.f) { 
        blur = 0.5f; 
    } 
    int boxSize = (int)(blur * 40); 
    boxSize = boxSize - (boxSize % 2) + 1; 
     
    CGImageRef img = destImage.CGImage; 
     
    vImage_Buffer inBuffer, outBuffer; 
     
    vImage_Error error; 
     
    voidvoid *pixelBuffer; 
     
     
    //create vImage_Buffer with data from CGImageRef 
     
    CGDataProviderRef inProvider = CGImageGetDataProvider(img); 
    CFDataRef inBitmapData = CGDataProviderCopyData(inProvider); 
     
     
    inBuffer.width = CGImageGetWidth(img); 
    inBuffer.height = CGImageGetHeight(img); 
    inBuffer.rowBytes = CGImageGetBytesPerRow(img); 
     
    inBuffer.data = (void*)CFDataGetBytePtr(inBitmapData); 
     
    //create vImage_Buffer for output 
     
    pixelBuffer = malloc(CGImageGetBytesPerRow(img) * CGImageGetHeight(img)); 
     
    if(pixelBuffer == NULL) 
        NSLog(@"No pixelbuffer"); 
     
    outBuffer.data = pixelBuffer; 
    outBuffer.width = CGImageGetWidth(img); 
    outBuffer.height = CGImageGetHeight(img); 
    outBuffer.rowBytes = CGImageGetBytesPerRow(img); 
     
    // Create a third buffer for intermediate processing 
    voidvoid *pixelBuffer2 = malloc(CGImageGetBytesPerRow(img) * CGImageGetHeight(img)); 
    vImage_Buffer outBuffer2; 
    outBuffer2.data = pixelBuffer2; 
    outBuffer2.width = CGImageGetWidth(img); 
    outBuffer2.height = CGImageGetHeight(img); 
    outBuffer2.rowBytes = CGImageGetBytesPerRow(img); 
     
    //perform convolution 
    error = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer2, NULL, 0, 0, boxSize, boxSize, NULL, kvImageEdgeExtend); 
    if (error) { 
        NSLog(@"error from convolution %ld", error); 
    } 
    error = vImageBoxConvolve_ARGB8888(&outBuffer2, &inBuffer, NULL, 0, 0, boxSize, boxSize, NULL, kvImageEdgeExtend); 
    if (error) { 
        NSLog(@"error from convolution %ld", error); 
    } 
    error = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer, NULL, 0, 0, boxSize, boxSize, NULL, kvImageEdgeExtend); 
    if (error) { 
        NSLog(@"error from convolution %ld", error); 
    } 
     
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef ctx = CGBitmapContextCreate(outBuffer.data, 
                                             outBuffer.width, 
                                             outBuffer.height, 
                                             8, 
                                             outBuffer.rowBytes, 
                                             colorSpace, 
                                             (CGBitmapInfo)kCGImageAlphaNoneSkipLast); 
    CGImageRef imageRef = CGBitmapContextCreateImage (ctx); 
    UIImage *returnImage = [UIImage imageWithCGImage:imageRef]; 
     
    //clean up 
    CGContextRelease(ctx); 
    CGColorSpaceRelease(colorSpace); 
     
    free(pixelBuffer); 
    free(pixelBuffer2); 
    CFRelease(inBitmapData); 
     
    CGImageRelease(imageRef); 
     
    return returnImage; 

 
 
@end 

@main.m

復制代碼 代碼如下:

- (void)viewDidLoad 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    // tableView 
    self.testTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 568) style:UITableViewStylePlain]; 
    self.testTableView.delegate = self; 
    self.testTableView.dataSource = self; 
    [self.view addSubview:_testTableView]; 
     
    /**
     *  隱藏狀態欄效果
     *  1.系統提供了2種動畫,一種是偏移,一種是漸隱
     *  2.在plist文件中將”View controller-based status bar appearance” 設置為 “No”
     */ 
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 
     
    // headView不作為tableHeadView,而是覆蓋在第一個Cell上 
    self.headView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 200)]; 
    self.headView.image = [[UIImage imageNamed:@"2"] boxblurImageWithBlur:0.01]; 
    self.headView.contentMode = UIViewContentModeScaleAspectFill;  //  圖片展示全高度 
    self.headView.clipsToBounds = YES; 
    [self.testTableView addSubview:self.headView]; 
     

 
#pragma mark - scroll delegate 頭部視圖效果方法 
-(void)scrollViewDidScroll:(UIScrollView *)scrollView 

     
    [MTHeadEffect viewDidScroll:scrollView withHeadView:self.headView withBlur:0.01]; 

 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 
 
    return 1; 

 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
 
    return 25; 

 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
 
    if (indexPath.row == 0) { 
        return 200; 
    } 
    return 40; 
 

 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
     
    static NSString *cellIdentf = @"cell"; 
    UITableViewCell *cell = [tableView dequeueReusableHeaderFooterViewWithIdentifier:cellIdentf]; 
    if (!cell) { 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentf]; 
    } 
    cell.textLabel.text = [NSString stringWithFormat:@"section = %ld row = %ld",indexPath.section,indexPath.row]; 
    return cell; 
 

效果圖:額,不會制作gif動圖,所以不太好演示,反正關鍵代碼已經給出,大家可以自己去嘗試.
第三方FXBlurView做法的關鍵代碼:

復制代碼 代碼如下:

- (void)createBlurView{ 
 
    self.blurView = [[FXBlurView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, kOriginHight)]; 
    self.blurView.tintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; 
    self.blurView.blurRadius = 1.0; 
    self.blurView.dynamic = YES; 
    self.blurView.alpha = 0.0; 
    self.blurView.contentMode = UIViewContentModeBottom; 
 

 
#pragma mark - scroll delegate 頭部視圖效果方法 
-(void)scrollViewDidScroll:(UIScrollView *)scrollView 

     
    if (scrollView.contentOffset.y > 0) { 
        
        self.blurView.alpha = 1.0; 
        self.blurView.blurRadius = scrollView.contentOffset.y / 4.0; 
    } 
    if (scrollView.contentOffset.y == 0) { 
        self.blurView.alpha = 0.0; 
    } 
    if (scrollView.contentOffset.y < 0) { 
         
        CGFloat offset = - scrollView.contentOffset.y; 
        self.blurView.alpha = 0.0; 
        NSArray *indexPathArray = [self.testTableView indexPathsForVisibleRows]; 
        HMTBlurTableViewCell *blurCell = (HMTBlurTableViewCell *)[self.testTableView cellForRowAtIndexPath:[indexPathArray objectAtIndex:0]]; 
        blurCell.blurImageView.frame = CGRectMake(-offset, -offset, ScreenWidth + offset * 2, kOriginHight + offset); 
 
    } 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品美女久久久久| 国产日韩中文字幕| 国产精品久久久| 亚洲免费小视频| 午夜精品一区二区三区在线播放| 国产精品久久国产精品99gif| 亚洲毛片在线观看| 欧美高清电影在线看| 91久久夜色精品国产网站| 国产精品爽爽ⅴa在线观看| 成人欧美一区二区三区黑人| 一本色道久久综合狠狠躁篇怎么玩| 一区二区三区高清国产| 精品国产乱码久久久久久虫虫漫画| 日韩高清中文字幕| 欧美高清videos高潮hd| 欧美激情国内偷拍| 欧美裸体男粗大视频在线观看| 日韩亚洲欧美成人| 91久久综合亚洲鲁鲁五月天| 精品视频在线播放免| 亚洲在线一区二区| 亚洲人成网在线播放| 欧美性高潮床叫视频| 色www亚洲国产张柏芝| 国产亚洲福利一区| 日韩在线视频免费观看| 欧美成人精品一区| 亚洲欧美日韩爽爽影院| 国产精品999999| 日本道色综合久久影院| 国产一区二区三区在线观看网站| 欧美疯狂xxxx大交乱88av| 国产91色在线播放| 欧美剧在线观看| 国产亚洲精品日韩| 国产亚洲视频在线观看| 亚洲成人国产精品| 色无极影院亚洲| 日韩欧美中文字幕在线播放| 国产精品高潮呻吟久久av黑人| 欧美性生交大片免费| 日韩av黄色在线观看| 国产亚洲精品久久久优势| 91在线观看免费| 热久久免费国产视频| 欧美激情中文字幕乱码免费| 国产91色在线| 久久精品国产一区| 国产一区二区三区毛片| 亚洲人在线视频| 国产美女高潮久久白浆| 麻豆国产精品va在线观看不卡| 九九久久久久久久久激情| 亚洲aa中文字幕| 亚洲欧美另类中文字幕| 欧美洲成人男女午夜视频| xxx欧美精品| 九九热精品视频在线播放| 国产第一区电影| 亚洲国产精品va在看黑人| 国产激情久久久久| 国产精品大片wwwwww| 伊人久久久久久久久久| 91欧美精品午夜性色福利在线| 国产亚洲欧美日韩精品| 国产经典一区二区| 欧美日韩中文字幕日韩欧美| 亚洲黄色成人网| 国产精品7m视频| 成人黄色免费网站在线观看| 国产精品香蕉国产| 亚洲激情视频在线播放| 国产亚洲精品激情久久| 亚洲精品久久久久久下一站| …久久精品99久久香蕉国产| 成人淫片在线看| 96精品视频在线| 亚洲国产高清自拍| 国产精品美乳在线观看| 中文字幕亚洲综合| 26uuu另类亚洲欧美日本老年| 久久久人成影片一区二区三区观看| 最近的2019中文字幕免费一页| 亚洲第一区第一页| 国产成人极品视频| 国产精品视频永久免费播放| 国产欧美精品日韩| 欧美视频免费在线| 亚洲精品福利资源站| 精品色蜜蜜精品视频在线观看| 国产亚洲欧美日韩一区二区| 国产欧美日韩免费| 日韩亚洲欧美中文高清在线| 国自产精品手机在线观看视频| 久久99青青精品免费观看| 国产午夜精品免费一区二区三区| 91精品久久久久久久久久久| 国产精品入口福利| 精品视频www| 欧美日韩国产在线| 国产成人极品视频| 国产精品福利无圣光在线一区| 欧美激情视频网站| 97精品一区二区视频在线观看| 亚洲一区二区三区毛片| 国产精品国产三级国产专播精品人| 日韩中文字幕精品视频| 欧美成人精品在线观看| 国产精品自在线| 91精品91久久久久久| 亚洲精品第一国产综合精品| 国产成人精品久久久| 91国产美女视频| 成人精品一区二区三区电影免费| 午夜免费久久久久| 国产精品成人国产乱一区| 亚洲毛片在线看| 国产精品毛片a∨一区二区三区|国| 欧美成人精品在线播放| 欧美综合国产精品久久丁香| 欧美激情欧美狂野欧美精品| 久久久久国产精品免费网站| 伊人一区二区三区久久精品| 在线视频中文亚洲| 九九精品视频在线观看| 日韩欧美精品在线观看| 欧美成人性生活| 久久国产视频网站| 亚洲大胆人体视频| 国产精品高潮呻吟视频| 国产精品久久视频| 国产极品jizzhd欧美| 亚洲精品98久久久久久中文字幕| 成人精品视频在线| 在线观看视频亚洲| 精品久久久91| 中文字幕亚洲天堂| 国产精品海角社区在线观看| 国产日韩在线视频| 国产91精品久久久| 韩曰欧美视频免费观看| 国内精品一区二区三区| 欧美激情三级免费| 日韩免费高清在线观看| 最新91在线视频| 国产精品网站入口| 91av在线免费观看视频| 欧美日韩在线视频观看| 黑人巨大精品欧美一区二区一视频| 日本精品视频在线播放| 精品调教chinesegay| 日韩av三级在线观看| 久久久久久91香蕉国产| 精品自拍视频在线观看| 亚洲片国产一区一级在线观看| 欧美日韩电影在线观看| 久久琪琪电影院| 国内偷自视频区视频综合| 久久免费视频这里只有精品| 成人免费大片黄在线播放| 亚洲美女免费精品视频在线观看| 国产亚洲欧美另类中文| 中文字幕日韩欧美在线|