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

iOS中關(guān)于列表滾動(dòng)流暢的一些探討

移動(dòng)開發(fā) iOS
近些年,App 越來越推崇體驗(yàn)至上,隨隨便便亂寫一通的話已經(jīng)很難讓用戶買帳了,順滑的列表便是其中很重要的一點(diǎn)。如果一個(gè) App 的頁面滾動(dòng)起來總是卡頓卡頓的,輕則被當(dāng)作反面教材來吐槽或者襯托“我們的 App balabala…”,重則直接卸載。正好最近在優(yōu)化這一塊兒,總結(jié)記錄下。

近些年,App 越來越推崇體驗(yàn)至上,隨隨便便亂寫一通的話已經(jīng)很難讓用戶買帳了,順滑的列表便是其中很重要的一點(diǎn)。如果一個(gè) App 的頁面滾動(dòng)起來總是卡頓卡頓的,輕則被當(dāng)作反面教材來吐槽或者襯托“我們的 App balabala…”,重則直接卸載。正好最近在優(yōu)化這一塊兒,總結(jié)記錄下。

如果說有什么好的博客文章推薦,ibireme 的 iOS 保持界面流暢的技巧 這篇堪稱業(yè)界毒瘤,墻裂推薦反復(fù)閱讀。這篇文章中講解了很多的優(yōu)化點(diǎn),我自己總結(jié)了下收益***的兩個(gè)優(yōu)化點(diǎn):

  • 避免重復(fù)多次計(jì)算 cell 行高
  • 文本異步渲染

iOS 中關(guān)于列表滾動(dòng)流暢的一些探討

大家可以看看上面這張圖的對比分析,數(shù)據(jù)是 iPhone6 的機(jī)子用 instruments 抓的,左邊的是用 Auto Layout 繪制界面的數(shù)據(jù)分析,正常如果想平滑滾動(dòng)的話,fps 至少需要穩(wěn)定在 55 左右,我們可以發(fā)現(xiàn),在沒有緩存行高和異步渲染的情況下 fps 是***的,可以說是比較卡頓了,至少是能肉眼感覺出來,能滿足平滑滾動(dòng)要求的也只有在緩存行高且異步渲染的情況下;右邊的是沒用 Auto Layout 直接用 frame 來繪制界面的數(shù)據(jù)分析,可以發(fā)現(xiàn)即使沒有異步渲染,也能勉強(qiáng)滿足平滑滾動(dòng)的要求,如果開啟異步渲染的話,可以說是相當(dāng)?shù)慕z滑了。

避免重復(fù)多次計(jì)算 cell 行高

TableView 行高計(jì)算可以說是個(gè)老生常談的問題了, heightForRowAtIndexPath: 是個(gè)調(diào)用相當(dāng)頻繁的方法,在里面做過多的事情難免會(huì)造成卡頓。 在 iOS 8 中,我們可以通過設(shè)置下面兩個(gè)屬性來很輕松的實(shí)現(xiàn)高度自適應(yīng): 

  1. self.tableView.estimatedRowHeight = 88; 
  2. self.tableView.rowHeight = UITableViewAutomaticDimension; 

 雖然很方便,不過如果你的頁面對性能有一定要求,建議不要這么做,具體可以看看 sunnyxx 的 優(yōu)化UITableViewCell高度計(jì)算的那些事 。文中針對 Auto Layout,提供了個(gè) cell 行高的緩存庫 UITableView-FDTemplateLayoutCell ,可以很好的幫助我們避免 cell 行高多次計(jì)算的問題。

如果不使用 Auto Layout,我們可以在請求完拿到數(shù)據(jù)后提前計(jì)算好頁面?zhèn)€個(gè)控件的 frame 和 cell 高度,并且緩存在內(nèi)存中,用的時(shí)候直接在 heightForRowAtIndexPath: 取出計(jì)算好的值就行,大概流程如下:

模擬請求數(shù)據(jù)回調(diào): 

  1. - (void)viewDidLoad { 
  2.     [super viewDidLoad]; 
  3.      
  4.     [self buildTestDataThen:^(NSMutableArray <FDFeedEntity *> *entities) { 
  5.         self.data = @[].mutableCopy; 
  6.         @autoreleasepool { 
  7.             for (FDFeedEntity *entity in entities) { 
  8.                 FrameModel *frameModel = [FrameModel new]; 
  9.                 frameModel.entity = entity; 
  10.                 [self.data addObject:frameModel]; 
  11.             } 
  12.         } 
  13.         [self.tvFeed reloadData]; 
  14.     }]; 

一個(gè)簡單計(jì)算 frame 、cell 行高方式: 

  1. //FrameModel.h 
  2.  
  3. @interface FrameModel : NSObject 
  4.  
  5. @property (assign, nonatomic, readonly) CGRect titleFrame; 
  6. @property (assign, nonatomic, readonly) CGFloat cellHeight; 
  7. @property (strong, nonatomic) FDFeedEntity *entity; 
  8.  
  9. @end 
  10.  
  11. //FrameModel.m 
  12.  
  13. @implementation FrameModel 
  14.  
  15. - (void)setEntity:(FDFeedEntity *)entity { 
  16.     if (!entity) return
  17.      
  18.     _entity = entity; 
  19.      
  20.     CGFloat maxLayout = ([UIScreen mainScreen].bounds.size.width - 20.f); 
  21.     CGFloat bottom = 4.f; 
  22.      
  23.     //title 
  24.     CGFloat titleX = 10.f; 
  25.     CGFloat titleY = 10.f; 
  26.     CGSize titleSize = [entity.title boundingRectWithSize:CGSizeMake(maxLayout, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : Font(16.f)} context:nil].size
  27.     _titleFrame = CGRectMake(titleX, titleY, titleSize.width, titleSize.height); 
  28.      
  29.     //cell Height 
  30.     _cellHeight = (CGRectGetMaxY(_titleFrame) + bottom); 
  31.  
  32. @end 

行高取值: 

  1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
  2.     FrameFeedCell *cell = [tableView dequeueReusableCellWithIdentifier:FrameFeedCellIdentifier forIndexPath:indexPath]; 
  3.     FrameModel *frameModel = self.data[indexPath.row]; 
  4.     cell.model = frameModel; 
  5.     return cell; 
  6.  
  7. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
  8.     FrameModel *frameModel = self.data[indexPath.row]; 
  9.     return frameModel.cellHeight; 

控件賦值: 

  1. - (void)setModel:(FrameModel *)model { 
  2.     if (!model) return
  3.      
  4.     _model = model; 
  5.      
  6.     FDFeedEntity *entity = model.entity; 
  7.      
  8.     self.titleLabel.frame = model.titleFrame; 
  9.     self.titleLabel.text = entity.title; 

優(yōu)缺點(diǎn)

緩存行高方式有現(xiàn)成的庫簡單方便,雖然 UITableView-FDTemplateLayoutCell 已經(jīng)處理的很好了,但是 Auto Layout 對性能還是會(huì)有部分消耗;手動(dòng)計(jì)算 frame 方式所有的位置都需要計(jì)算,比較麻煩,而且在數(shù)據(jù)量很大的情況下,大量的計(jì)算對數(shù)據(jù)展示時(shí)間會(huì)有部分影響,相應(yīng)的回報(bào)就是性能會(huì)更好一些。

文本異步渲染

當(dāng)顯示大量文本時(shí),CPU 的壓力會(huì)非常大。對此解決方案只有一個(gè),那就是自定義文本控件,用 TextKit 或***層的 CoreText 對文本異步繪制。盡管這實(shí)現(xiàn)起來非常麻煩,但其帶來的優(yōu)勢也非常大,CoreText 對象創(chuàng)建好后,能直接獲取文本的寬高等信息,避免了多次計(jì)算(調(diào)整 UILabel 大小時(shí)算一遍、UILabel 繪制時(shí)內(nèi)部再算一遍);CoreText 對象占用內(nèi)存較少,可以緩存下來以備稍后多次渲染。

幸運(yùn)的是,想支持文本異步渲染也有現(xiàn)成的庫 YYText ,下面來講講如何搭配它***程度滿足我們?nèi)缃z般順滑的需求:

Frame 搭配異步渲染

基本思路和計(jì)算 frame 類似,只不過把系統(tǒng)的 boundingRectWithSize: 、 sizeWithAttributes: 換成 YYText 中的方法:

配置 frame model: 

  1. //FrameYYModel.h 
  2.  
  3. @interface FrameYYModel : NSObject 
  4.  
  5. @property (assign, nonatomic, readonly) CGRect titleFrame; 
  6. @property (strong, nonatomic, readonly) YYTextLayout *titleLayout; 
  7.  
  8. @property (assign, nonatomic, readonly) CGFloat cellHeight; 
  9.  
  10. @property (strong, nonatomic) FDFeedEntity *entity; 
  11.  
  12. @end 
  13.  
  14. //FrameYYModel.m 
  15.  
  16. @implementation FrameYYModel 
  17.  
  18. - (void)setEntity:(FDFeedEntity *)entity { 
  19.     if (!entity) return
  20.      
  21.     _entity = entity; 
  22.      
  23.     CGFloat maxLayout = ([UIScreen mainScreen].bounds.size.width - 20.f); 
  24.     CGFloat space = 10.f; 
  25.     CGFloat bottom = 4.f; 
  26.      
  27.     //title 
  28.     NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:entity.title]; 
  29.     title.yy_font = Font(16.f); 
  30.     title.yy_color = [UIColor blackColor]; 
  31.      
  32.     YYTextContainer *titleContainer = [YYTextContainer containerWithSize:CGSizeMake(maxLayout, CGFLOAT_MAX)]; 
  33.     _titleLayout = [YYTextLayout layoutWithContainer:titleContainer text:title]; 
  34.      
  35.     CGFloat titleX = 10.f; 
  36.     CGFloat titleY = 10.f; 
  37.     CGSize titleSize = _titleLayout.textBoundingSize; 
  38.     _titleFrame = (CGRect){titleX,titleY,CGSizeMake(titleSize.width, titleSize.height)}; 
  39.      
  40.     //cell Height 
  41.     _cellHeight = (CGRectGetMaxY(_titleFrame) + bottom); 
  42.  
  43. @end 

對比上面 frame,可以發(fā)現(xiàn)多了個(gè) YYTextLayout 屬性,這個(gè)屬性可以提前配置文本的特性,包括 font 、 textColor 以及行數(shù)、行間距、內(nèi)間距等等,好處就是可以把一些邏輯提前處理好,比如根據(jù)接口字段,動(dòng)態(tài)配置字體顏色,字號(hào)等,如果用 Auto Layout,這部分邏輯則不可避免的需要寫在 cellForRowAtIndexPath: 方法中。

UITableViewCell 處理 : 

  1. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
  2.     self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
  3.     if (!self) return nil; 
  4.    
  5.     YYLabel *title = [YYLabel new]; 
  6.     title.displaysAsynchronously = YES; //開啟異步渲染 
  7.     title.ignoreCommonProperties = YES; //忽略屬性 
  8.     title.layer.borderColor = [UIColor brownColor].CGColor; 
  9.     title.layer.cornerRadius = 1.f; 
  10.     title.layer.borderWidth = 1.f; 
  11.     [self.contentView addSubview:_titleLabel = title]; 
  12.    
  13.     return self; 

賦值: 

  1. - (void)setModel:(FrameYYModel *)model { 
  2.     if (!model) return
  3.     _model = model; 
  4.      
  5.     self.titleLabel.frame = model.titleFrame; 
  6.     self.titleLabel.textLayout = model.titleLayout; //直接取 YYTextLayout 

 Auto Layout 搭配異步渲染

YYText 非常友好,同樣支持 xib,YYText 繼承自 UIView ,正常的在 xib 中配置約束就行了,需要注意的一點(diǎn)是,多行文本的情況下需要設(shè)置***換行寬: 

  1. CGFloat maxLayout = [UIScreen mainScreen].bounds.size.width - 20.f; 
  2. self.titleLabel.preferredMaxLayoutWidth = maxLayout; 
  3. self.subTitleLabel.preferredMaxLayoutWidth = maxLayout; 
  4. self.contentLabel.preferredMaxLayoutWidth = maxLayout; 

 優(yōu)缺點(diǎn)

YYText 的異步渲染能極大程度的提高列表流暢度,真正達(dá)到如絲般順滑,但是在開啟異步時(shí),刷新列表會(huì)有閃爍情況,不知道算不算 bug,最近也看到作者回歸了,相信這個(gè)庫會(huì)越來越好,畢竟 真●大神!

其它

列表中如果存在很多系統(tǒng)設(shè)置的圓角頁面導(dǎo)致卡頓: 

  1. label.layer.cornerRadius = 5.f; 
  2. label.clipsToBounds = YES; 

 其實(shí)據(jù)我觀察,只要當(dāng)前屏幕內(nèi)只要設(shè)置圓角的控件個(gè)數(shù)不要太多(大概十幾個(gè)算個(gè)零界點(diǎn)),就不會(huì)引起卡頓。

還有就是只要不設(shè)置 clipsToBounds 不管多少個(gè),都不會(huì)卡頓,比如你需要圓角的控件是白色背景色的,然后它的父控件也是白色背景色的,而且沒有點(diǎn)擊后高亮的,就沒必要 clipsToBounds 了。

總結(jié)

YYText 和 UITableView-FDTemplateLayoutCell 搭配可以很大程度的提高列表流暢度,如果時(shí)間比較緊迫,可以直接采取 Auto Layout + UITableView-FDTemplateLayoutCell + YYText 方式;如果列表中文本不包含富文本,僅僅顯示文字,又不想引入這兩個(gè)庫,可以使用系統(tǒng)方式提前計(jì)算 Frame;如果想***程度的流暢度,就需要使用 提前計(jì)算 Frame + YYText,具體大家根據(jù)自己情況選擇合適的方案就行。

責(zé)任編輯:未麗燕 來源: ifelseboyxx's Blog
相關(guān)推薦

2017-02-20 16:28:30

DCISDN-WAN傳輸網(wǎng)絡(luò)

2022-01-12 08:30:55

結(jié)構(gòu)體指針STM32

2009-03-13 09:31:03

.NET整合分布式應(yīng)用

2011-07-13 09:13:56

Android設(shè)計(jì)

2009-07-02 10:52:30

JavaBean規(guī)范

2009-11-25 09:23:47

PHP引用&符號(hào)

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2023-02-10 09:46:04

bash腳本變量

2022-11-09 19:02:10

Linux

2012-09-25 10:03:56

JavaJava封面Java開發(fā)

2012-04-19 10:06:55

微軟Windows 8 E

2015-12-04 10:04:53

2022-04-14 10:22:44

故事卡業(yè)務(wù)

2020-09-28 06:45:42

故障復(fù)盤修復(fù)

2011-03-11 09:27:11

Java性能監(jiān)控

2017-12-21 07:54:07

2009-06-04 16:28:43

EJB常見問題

2020-04-10 08:50:37

Shell腳本循環(huán)

2018-07-30 08:41:48

VueReact區(qū)別
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

噜噜噜天天躁狠狠躁夜夜精品| av网站在线免费| 日本一不卡视频| 成人97在线观看视频| 久久久高清视频| 成人开心激情| 一区二区在线观看视频在线观看| 国产日本一区二区三区| 波多野结衣在线观看视频| 99久久影视| 亚洲国产小视频在线观看| 成人免费视频久久| 黄色美女视频在线观看| 国产欧美一区二区在线| 国产欧美日韩视频一区二区三区| 乱子伦一区二区三区| 国内成人在线| 色偷偷av一区二区三区| 少妇被狂c下部羞羞漫画| 国产精品蜜月aⅴ在线| 午夜电影一区二区| 自拍偷拍视频在线| 精品欧美不卡一区二区在线观看| 国产精品一区在线观看你懂的| 日本精品va在线观看| 波兰性xxxxx极品hd| 日韩欧美黄色| 欧美大片一区二区| 日韩av.com| 日韩免费va| 精品久久久久久中文字幕一区奶水 | 欧美成人一区二区三区高清| 中文字幕精品影院| 亚洲精品在线网站| 亚洲网中文字幕| 欧美不卡高清一区二区三区| 亚洲大片精品永久免费| 韩国黄色一级大片| 久久亚洲天堂| 中文字幕永久在线不卡| 相泽南亚洲一区二区在线播放| 手机看片福利永久| 懂色av中文字幕一区二区三区| 国产在线播放91| 欧美成人一区二区三区四区| 99在线精品视频在线观看| 九色精品美女在线| 国产盗摄一区二区三区在线| 91亚洲国产成人久久精品| 亚洲人成在线观看| 日韩精品无码一区二区三区久久久| 国产精品毛片视频| 亚洲第一精品久久忘忧草社区| 免费高清视频在线观看| 国产成年精品| 91精品国产综合久久福利| 欧美激情第3页| 祥仔av免费一区二区三区四区| 欧美视频在线观看一区| 九热视频在线观看| jizzyou欧美16| 欧美日韩亚州综合| 加勒比av中文字幕| 久久视频社区| 精品国产一区二区三区忘忧草 | 黄色一级免费大片| 美女色狠狠久久| 欧美日韩精品福利| 中文 日韩 欧美| 亚洲精选av| 亚洲成人久久久久| 香蕉视频黄色在线观看| 欧美精品momsxxx| 最近2019中文字幕一页二页 | 欧美日韩一区二区区| 99久久免费精品国产72精品九九| 亚洲成年人在线播放| 国产福利在线观看视频| 精品国内自产拍在线观看视频| 最近的2019中文字幕免费一页| 99久久久无码国产精品不卡| 亚洲一区二区三区无吗| 国内精久久久久久久久久人| 国产成人精品网| 蜜桃视频一区二区三区在线观看| 亚洲综合最新在线| 天天射,天天干| 国产欧美一区二区精品秋霞影院 | 男女做爰猛烈刺激| 99久久婷婷| 亚洲18私人小影院| 超碰在线免费97| 国产大陆精品国产| 快播日韩欧美| 日本不卡不卡| 亚洲成人综合在线| 波多结衣在线观看| 亚洲啊v在线免费视频| 亚洲欧美国产一本综合首页| 亚洲区一区二区三| 亚洲日本久久| 成人免费高清完整版在线观看| 十八禁一区二区三区| 中文字幕+乱码+中文字幕一区| 国产黄色激情视频| 成人精品电影在线| 日韩女同互慰一区二区| 在线免费观看视频| 亚洲精品1区| 成人欧美在线视频| 美国成人毛片| 亚洲国产精品影院| 在线看免费毛片| 亚洲品质自拍| 高清亚洲成在人网站天堂| 中文字幕a级片| 91亚洲国产成人精品一区二区三 | 亚洲经典在线| 亚洲综合中文字幕在线观看| 超碰免费97在线观看| 亚洲国产精品久久久男人的天堂| 伊人色在线观看| 国产精品一在线观看| 久久久久久久久91| 国产免费一区二区三区免费视频| 日本一区二区三区视频视频| 国产精品国产亚洲精品看不卡| 日本精品一区二区三区在线观看视频| 国产亚洲一区二区在线| 成人午夜视频精品一区| 国产激情91久久精品导航 | 欧美视频二区| 成人免费xxxxx在线观看| 成人免费高清在线播放| 欧美日韩一区免费| www.啪啪.com| 在线播放一区| 国产九色精品| 久草在线视频网站| 欧美xxx久久| 久久久久99精品成人片试看| 精品一区二区在线视频| 亚州欧美一区三区三区在线| 电影亚洲精品噜噜在线观看| 亚洲精品有码在线| 丁香六月婷婷综合| 91年精品国产| 日韩久久一级片| 妖精视频一区二区三区| 26uuu久久噜噜噜噜| 欧洲精品亚洲精品| 日韩手机在线观看| 成人午夜电影小说| 黄色片免费在线观看视频| 四虎国产精品永久在线国在线| 亚洲一级黄色片| 91视频在线视频| 国产日韩欧美精品一区| 日韩视频免费在线播放| 精品欧美久久| 国产日韩欧美夫妻视频在线观看| 1769在线观看| 欧美男生操女生| 欧洲美女女同性互添| 国内成人精品2018免费看| 天堂av免费看| 97视频一区| 91av免费观看91av精品在线| 午夜福利视频一区二区| 欧美性色视频在线| 欧美18—19性高清hd4k| 麻豆国产欧美一区二区三区| 伊人狠狠色丁香综合尤物| 一级欧美视频| 欧美激情在线观看视频| 色猫av在线| 欧美撒尿777hd撒尿| 182在线观看视频| 高清免费成人av| 国产男女无遮挡| 久久中文视频| 国产精品sss| 国产精品极品美女在线观看| 俺也去精品视频在线观看| 国产成年妇视频| 婷婷亚洲久悠悠色悠在线播放| 熟女俱乐部一区二区| 老色鬼精品视频在线观看播放| 日韩精品免费一区| 色天天色综合| 国产日韩av在线| 91av久久| 日韩视频精品在线| 天天色综合av| 91麻豆精品国产自产在线| 国产精品18p| 久久精品夜色噜噜亚洲a∨| 久久久精品高清| 亚洲欧洲午夜| 黄瓜视频免费观看在线观看www| 国产精品xxxav免费视频| 国产精品久久中文| sis001亚洲原创区| 日韩专区中文字幕| 亚洲色欧美另类| 欧美性受xxxx黑人xyx性爽| 青青草激情视频| 中文字幕欧美三区| av黄色一级片| 国产乱妇无码大片在线观看| 无人在线观看的免费高清视频| 黄色亚洲精品| 人人妻人人澡人人爽精品欧美一区| 欧美调教在线| 99精彩视频在线观看免费| 日韩高清不卡| 2019精品视频| 日韩伦理av| 日韩一区二区久久久| 天堂av在线资源| 欧美va亚洲va| 国产露脸91国语对白| 91福利视频在线| 天堂网av手机版| 亚洲成人你懂的| 青青草原国产视频| 一区在线播放视频| 少妇的滋味中文字幕bd| 久久久天堂av| 变态另类丨国产精品| 福利91精品一区二区三区| 国产成年人视频网站| 蜜臀av在线播放一区二区三区| 18禁免费无码无遮挡不卡网站| 国产综合自拍| 国产高清www| 国产综合婷婷| www.夜夜爱| 欧美精品一区二区三区久久久竹菊| 曰韩不卡视频| 亚洲mv大片欧洲mv大片| 一区二区三区偷拍| 日韩在线综合| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 久久爱www成人| 日本日本精品二区免费| 久久99视频| 热re99久久精品国99热蜜月| 香蕉精品久久| 久久精品一区二区三区不卡免费视频| 白白在线精品| 国内精品久久国产| 欧亚精品一区| 久久久久久久久一区二区| 五月天亚洲一区| 欧美三级网色| 青青草国产成人a∨下载安卓| 午夜精品区一区二区三| 久久精品国产大片免费观看| 中文网丁香综合网| 亚洲香蕉av| 国产精品videossex国产高清 | 国产欧美综合一区| 欧美a级在线| 人妻av中文系列| 模特精品在线| 无需播放器的av| 国产精品性做久久久久久| 亚洲图片欧美另类| 91丨porny丨蝌蚪视频| 中国美女乱淫免费看视频| 国产清纯美女被跳蛋高潮一区二区久久w | 蜜桃传媒麻豆第一区在线观看| 午夜免费福利视频在线观看| 国产乱人伦偷精品视频不卡| 人妻 丝袜美腿 中文字幕| 99国产精品久久| 四季av中文字幕| 亚洲激情网站免费观看| 91浏览器在线观看| 欧美在线观看一二区| 国产三级三级在线观看| 亚洲精品国产电影| 搞黄视频免费在线观看| 欧美精品日韩三级| 僵尸再翻生在线观看免费国语| 国产成人精品在线视频| 日本亚州欧洲精品不卡| 久久久久久艹| 国产精品久久久久久久免费观看| 男人的天堂avav| 日韩在线一区二区三区| 午夜诱惑痒痒网| 91香蕉视频黄| 男人的天堂久久久| 欧美性高潮床叫视频 | 亚洲国产小视频| 午夜激情视频在线观看| 久久久久久久久久久免费| 日韩av首页| 国产精品一区而去| 水蜜桃精品av一区二区| 人人干视频在线| 久久99国产精品麻豆| av直播在线观看| 一区二区三区四区精品在线视频| 91video| 亚洲第一免费网站| 黄av在线播放| 国产精品久久久久久久久久小说 | 日韩三级在线播放| 亚洲视频综合| 日韩av自拍偷拍| 国产日韩三级在线| 青青青国产在线| 精品国产一区二区亚洲人成毛片| 欧美成人二区| 国产精品成人国产乱一区 | 亚洲成人国产精品| 成人av黄色| 国产精品网站入口| 免费看成人吃奶视频在线| 免费看日b视频| 国内久久婷婷综合| 丰满的亚洲女人毛茸茸| 欧美午夜影院在线视频| 日韩一级片免费在线观看| 欧美精品在线免费播放| 999久久久国产999久久久| 亚洲国内在线| 免费在线视频一区| 能直接看的av| 在线亚洲欧美专区二区| 日韩在线免费看| 777国产偷窥盗摄精品视频| 2020最新国产精品| 亚洲国产一二三精品无码| 国内精品伊人久久久久影院对白| 国产精品成人在线视频| 91久久一区二区| 成人高清免费在线播放| 国产成人福利网站| 精品一区二区三区在线| 四虎永久在线精品无码视频| 2023国产精品| 日韩在线视频不卡| 亚洲欧美一区二区三区在线| 悠悠资源网亚洲青| 久久免费一区| 欧美资源在线| 国产三级在线观看完整版| 欧美午夜精品理论片a级按摩| 国产精品毛片一区二区三区四区| 奇米四色中文综合久久| 国产成人调教视频在线观看| caoporn超碰97| 国产精品久久久久7777按摩| 一级黄色片在线看| 免费91麻豆精品国产自产在线观看| 欧美大片91| 国产xxxx振车| 99re亚洲国产精品| www毛片com| 最近2019中文字幕mv免费看| 99精品国产九九国产精品| 精品少妇人妻av一区二区| 国产大片一区二区| 日产电影一区二区三区| 亚洲欧洲第一视频| 久久国产三级| 国产免费裸体视频| www国产成人免费观看视频 深夜成人网| 国产亚洲欧美在线精品| www.午夜精品| 国产成人aa在线观看网站站| 国产欧美在线一区| 国产精品国产三级国产普通话三级 | 国产精品老女人视频| 91久久国产| 大尺度在线观看| 欧洲一区在线电影| а√天堂资源地址在线下载| 韩国成人av| 美洲天堂一区二卡三卡四卡视频| 草视频在线观看| 亚洲欧美www| 999精品视频在线观看| 成人一对一视频| 国产精品视频yy9299一区| www.97av| 国产成人精品在线| 午夜久久一区| 免费观看a级片| 精品国产一二三区| 78精品国产综合久久香蕉| 国产精品视频网站在线观看 | 精品国产亚洲一区二区三区在线观看| 激情黄产视频在线免费观看| 在线免费观看成人网| 91视频一区二区|