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

iOS: 如何正確的繪制1像素的線

移動開發
為了獲得良好的視覺效果,繪圖系統通常都會采用一個叫“antialiasing(反鋸齒)”的技術,iOS也不例外。 顯示屏幕有很多小的顯示單元組成,可以接單的理解為一個單元就代表一個像素。如果要畫一條黑線,條線剛好落在了一列或者一行顯示顯示單元之內,將會渲染出標準的一個像素的黑線。 但如果線落在了兩個行或列的中間時,那么會得到一條“失真”的線,其實是兩個像素寬的灰線。

 [[140291]]

一、Point Vs Pixel

iOS中當我們使用Quartz,UIKit,CoreAnimation等框架時,所有的坐標系統采用Point來衡量。系統在實際渲染到設置時會幫助我們處理Point到Pixel的轉換。

這樣做的好處隔離變化,即我們在布局的事后不需要關注當前設備是否為Retina,直接按照一套坐標系統來布局即可。

實際使用中我們需要牢記下面這一點:

  1. One point does not necessarily correspond to one physical pixel. 

1 Point的線在非Retina屏幕則是一個像素,在Retina屏幕上則可能是2個或者3個,取決于系統設備的DPI。

iOS系統中,UIScreen,UIView,UIImage,CALayer類都提供相關屬性來獲取scale factor。

原生的繪制技術天然的幫我們處理了scale factor,例如在drawRect:方法中,UIKit自動的根據當前運行的設備設置了正切的scale factor。所以我們在drawRect: 方法中繪制的任何內容都會被自動縮放到設備的物理屏幕上。

基于以上信息可以看出,我們大部分情況下都不需要去關注pixel,然而存在部分情況需要考慮像素的轉化。

例如畫1個像素的分割線

看到這個問題你的***想法可能是,直接根據當前屏幕的縮放因子計算出1 像素線對應的Point,然后設置線寬即可。

代碼如下:

  1. 1.0f / [UIScreen mainScreen].scale 

表面上看著一切正常了,但是通過實際的設備測試你會發現渲染出來的線寬并不是1個像素。

Why?

為了獲得良好的視覺效果,繪圖系統通常都會采用一個叫“antialiasing(反鋸齒)”的技術,iOS也不例外。

顯示屏幕有很多小的顯示單元組成,可以接單的理解為一個單元就代表一個像素。如果要畫一條黑線,條線剛好落在了一列或者一行顯示顯示單元之內,將會渲染出標準的一個像素的黑線。

但如果線落在了兩個行或列的中間時,那么會得到一條“失真”的線,其實是兩個像素寬的灰線。

如下圖所示:

blob.png

  1. Positions defined by whole-numbered points fall at the midpoint between pixels.
  2.  For example, if you draw a one-pixel-wide vertical line from (1.0, 1.0) to (1.0, 10.0), 
  3. you get a fuzzy grey line. If you draw a two-pixel-wide line, 
  4. you get a solid black line because it fully covers two pixels (one on either side of the specified point).
  5.  As a rule, lines that are an odd number of physical pixels wide appear softer than lines with widths
  6.  measured in even numbers of physical pixels unless you adjust their position to make them cover pixels fully. 

官方解釋如上,簡單翻譯一下:

  1. 規定:奇數像素寬度的線在渲染的時候將會表現為柔和的寬度擴展到向上的整數寬度的線,
  2. 除非你手動的調整線的位置,使線剛好落在一行或列的顯示單元內。 

如何對齊呢?

  1. On a low-resolution display (with a scale factor of 1.0), a one-point-wide line 
  2. is one pixel wide. To avoid antialiasing when you draw a one-point-wide horizontal or vertical line, 
  3. if the line is an odd number of pixels in width, you must offset the position by 0.5 points to 
  4. either side of a whole-numbered position. If the line is an even number of points in width, 
  5. to avoid a fuzzy line, you must not do so. 
  6. On a high-resolution display (with a scale factor of 2.0), a line that is one point wide is 
  7. not antialiased at all because it occupies two full pixels (from -0.5 to +0.5). 
  8. To draw a line that covers only a single physical pixel, you would need to make it 0.5 points in thickness and offset its position by 0.25 points. A comparison between the two types of screens is shown in Figure 1-4. 

翻譯一下

 
 
 
  1. 在非高清屏上,一個Point對應一個像素。為了防止“antialiasing”導致的奇數像素的線渲染時出現失真,你需要設置偏移0.5 Point。
  2. 在高清屏幕上,要繪制一個像素的線,需要設置線寬為0.5個Point,同事設置偏移為0.25 Point。
  3. 如果線寬為偶數Point的話,則不要去設置偏移,否則線條也會失真。

如下圖所示:

blob.png

看了上述一通解釋,我們了解了1像素寬的線條失真的原因,及解決辦法。

至此問題貌似都解決了?再想想為什么在非Retina和Retina屏幕上調整位置時值不一樣,前者為0.5Point,后者為0.25Point,那么scale為3的6 Plus設備又該調整多少呢?

要回答這個問題,我們需要理解調整多少依舊什么原則。

blob.png

再回過頭來看看這上面的圖片,圖片中每一格子代表一個像素,而頂部標記的則代碼我們布局時的坐標。

可以看到左邊的非Retina屏幕,我們要在(3,0)這個位置畫一條一個像素寬的豎線時,由于渲染的最小單位是像素,而(3,0)這個坐標恰好位于兩個像素中間,此時系統會對坐標3左右兩列的像素對填充,為了不至于線顯得太寬,為對線的顏色淡化。那么根據上述信息我們可以得出,如果要畫出一個像素寬的線,就得把繪制的坐標移動到(2.5, 0)或者(3.5,0)這個位置,這樣系統渲染的時候剛好可以填充一列像素,也就是標準的一個像素的線。

基于上面的分析,我們可以得出“Scale為3的6 Plus”設備如果要繪制1個像素寬的線條時,位置調整也應該是0.5像素,對應該的Point計算如下:

  1. (1.0f / [UIScreen mainScreen].scale) / 2

奉上一個畫一像素線的一個宏:

  1. #define SINGLE_LINE_WIDTH           (1 / [UIScreen mainScreen].scale) 
  2. #define SINGLE_LINE_ADJUST_OFFSET   ((1 / [UIScreen mainScreen].scale) / 2

使用代碼如下:

  1. CGFloat xPos = 5
  2. UIView *view = [[UIView alloc] initWithFrame:CGrect(x - SINGLE_LINE_ADJUST_OFFSET, 0, SINGLE_LINE_WIDTH, 100)]; 

#p#

二、正確的繪制Grid線條

貼上一個寫的GridView的代碼,代碼中對Grid線條的奇數像素做了偏移,防止出現線條模糊的情況。

SvGridView.h

 
  1. // 
  2. //  SvGridView.h 
  3. //  SvSinglePixel 
  4. // 
  5. //  Created by xiaoyong.cxy on 6/23/15. 
  6. //  Copyright (c) 2015 smileEvday. All rights reserved. 
  7. // 
  8. #import @interface SvGridView : UIView 
  9. /** 
  10.  * @brief 網格間距,默認30 
  11.  */ 
  12. @property (nonatomic, assign) CGFloat   gridSpacing; 
  13. /** 
  14.  * @brief 網格線寬度,默認為1 pixel (1.0f / [UIScreen mainScreen].scale) 
  15.  */ 
  16. @property (nonatomic, assign) CGFloat   gridLineWidth; 
  17. /** 
  18.  * @brief 網格顏色,默認藍色 
  19.  */ 
  20. @property (nonatomic, strong) UIColor   *gridColor; 
  21. @end 

SvGridView.m

  1. // 
  2. //  SvGridView.m 
  3. //  SvSinglePixel 
  4. // 
  5. //  Created by xiaoyong.cxy on 6/23/15. 
  6. //  Copyright (c) 2015 smileEvday. All rights reserved. 
  7. // 
  8. #import "SvGridView.h" 
  9. #define SINGLE_LINE_WIDTH           (1 / [UIScreen mainScreen].scale) 
  10. #define SINGLE_LINE_ADJUST_OFFSET   ((1 / [UIScreen mainScreen].scale) / 2
  11. @implementation SvGridView 
  12. @synthesize gridColor = _gridColor; 
  13. @synthesize gridSpacing = _gridSpacing; 
  14. - (instancetype)initWithFrame:(CGRect)frame 
  15.     self = [super initWithFrame:frame]; 
  16.     if (self) { 
  17.         self.backgroundColor = [UIColor clearColor]; 
  18.           
  19.         _gridColor = [UIColor blueColor]; 
  20.         _gridLineWidth = SINGLE_LINE_WIDTH; 
  21.         _gridSpacing = 30
  22.     } 
  23.       
  24.     return self; 
  25. - (void)setGridColor:(UIColor *)gridColor 
  26.     _gridColor = gridColor; 
  27.       
  28.     [self setNeedsDisplay]; 
  29. - (void)setGridSpacing:(CGFloat)gridSpacing 
  30.     _gridSpacing = gridSpacing; 
  31.       
  32.     [self setNeedsDisplay]; 
  33. - (void)setGridLineWidth:(CGFloat)gridLineWidth 
  34.     _gridLineWidth = gridLineWidth; 
  35.       
  36.     [self setNeedsDisplay]; 
  37. // Only override drawRect: if you perform custom drawing. 
  38. // An empty implementation adversely affects performance during animation. 
  39. - (void)drawRect:(CGRect)rect 
  40.     CGContextRef context = UIGraphicsGetCurrentContext(); 
  41.       
  42.     CGContextBeginPath(context); 
  43.     CGFloat lineMargin = self.gridSpacing; 
  44.       
  45.     /** 
  46.      *  https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/GraphicsDrawingOverview/GraphicsDrawingOverview.html 
  47.      * 僅當要繪制的線寬為奇數像素時,繪制位置需要調整 
  48.      */ 
  49.     CGFloat pixelAdjustOffset = 0
  50.     if (((int)(self.gridLineWidth * [UIScreen mainScreen].scale) + 1) % 2 == 0) { 
  51.         pixelAdjustOffset = SINGLE_LINE_ADJUST_OFFSET; 
  52.     } 
  53.       
  54.     CGFloat xPos = lineMargin - pixelAdjustOffset; 
  55.     CGFloat yPos = lineMargin - pixelAdjustOffset; 
  56.     while (xPos < self.bounds.size.width) { 
  57.         CGContextMoveToPoint(context, xPos, 0); 
  58.         CGContextAddLineToPoint(context, xPos, self.bounds.size.height); 
  59.         xPos += lineMargin; 
  60.     } 
  61.       
  62.     while (yPos < self.bounds.size.height) { 
  63.         CGContextMoveToPoint(context, 0, yPos); 
  64.         CGContextAddLineToPoint(context, self.bounds.size.width, yPos); 
  65.         yPos += lineMargin; 
  66.     } 
  67.       
  68.     CGContextSetLineWidth(context, self.gridLineWidth); 
  69.     CGContextSetStrokeColorWithColor(context, self.gridColor.CGColor); 
  70.     CGContextStrokePath(context); 
  71. @end 

使用方法如下:

 
  1. SvGridView *gridView = [[SvGridView alloc] initWithFrame:self.view.bounds]; 
  2. gridView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
  3. gridView.alpha = 0.6
  4. gridView.gridColor = [UIColor greenColor]; 
  5. [self.view addSubview:gridView]; 

三、一個問題

好了,到這兒本文的全部知識就結束了,***我還有一個問題。

設計師為什么一定要一個像素的線?

一個像素的線可能在非Retina設備上顯示寬度看著合適,在Retina屏幕上顯示可能會比較細。是不是一定需要一個像素的線,需要根據情況來處理。

責任編輯:倪明 來源: cnblog
相關推薦

2015-10-12 11:06:36

Web前端0.5像素

2010-02-03 17:42:30

2019-11-14 16:23:07

MySQL索引數據庫

2010-02-03 15:40:37

Python函數

2013-01-07 11:38:54

VMware認證

2016-10-11 16:28:11

源代碼

2020-05-09 10:48:34

數據備份存儲數據

2010-06-08 10:35:38

UML圖

2010-02-03 14:37:10

Python 開發環境

2010-02-02 14:11:14

Python 進行編程

2012-12-27 14:14:05

Android開發保存文件

2020-12-29 05:34:48

Scrapy網頁源代碼

2020-02-04 14:25:29

云遷移云計算云平臺

2018-04-23 14:58:27

大數據

2016-09-30 09:49:05

2018-07-20 09:16:08

微軟瀏覽器Windows

2010-06-07 10:01:55

IT培訓就業

2014-08-21 08:59:44

2018-04-20 10:54:52

數據集成數據科學工具

2022-11-24 09:55:12

Kubernetes監控
點贊
收藏

51CTO技術棧公眾號

精品欧美一区二区久久| 国产精品免费丝袜| 久久久久久久一区二区| 五月天丁香社区| 高潮一区二区| 日韩美女久久久| 久久av免费观看| 91尤物国产福利在线观看| 欧美特黄a级高清免费大片a级| 日韩国产高清视频在线| 男人添女人下面免费视频| 羞羞的视频在线观看| 2023国产精品| 91精品天堂| 免费av中文字幕| 欧美色一级片| 久久精品国产电影| 成人免费网站黄| 亚洲精品a区| 欧美私人免费视频| 亚洲 欧美 日韩 国产综合 在线 | 国产婷婷色综合av蜜臀av| 久久国产激情视频| 中文在线免费视频| 亚洲精品乱码久久久久久黑人| 欧美理论一区二区| 高h放荡受浪受bl| 美女mm1313爽爽久久久蜜臀| 26uuu另类亚洲欧美日本老年| 一区二区国产精品精华液| 天美av一区二区三区久久| 欧美一卡二卡三卡| 91色国产在线| 午夜影院在线播放| 亚洲已满18点击进入久久| 一区二区免费电影| 国产精品一级伦理| 2017欧美狠狠色| 国产一区二区三区免费不卡| www.麻豆av| 韩国av一区二区三区在线观看| 欧美中在线观看| 97人人澡人人爽人人模亚洲| 影音先锋日韩精品| 日韩中文字幕视频在线| 国产精品www爽爽爽| 精品一区三区| 亚洲欧美日韩成人| 熟女俱乐部一区二区视频在线| 精品国产一区二区三区不卡蜜臂 | 三级在线视频| a美女胸又www黄视频久久| 国产v亚洲v天堂无码| a视频免费在线观看| 韩国一区二区在线观看| 国产欧美 在线欧美| 一本到在线视频| 精品一区中文字幕| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 鲁丝一区鲁丝二区鲁丝三区| 亚洲精品久久久久久无码色欲四季| 国产在线精品一区二区不卡了| 成人观看高清在线观看免费| 91久久国语露脸精品国产高跟| 老司机精品视频一区二区三区| 国产精品亚洲精品| 国产精品一品二区三区的使用体验| 蜜桃视频免费观看一区| 成人国产精品色哟哟| 国产精品无码免费播放 | 国产综合香蕉五月婷在线| 一级淫片免费看| 麻豆91小视频| 97欧洲一区二区精品免费| 亚洲国产视频一区二区三区| 成人午夜伦理影院| 久久久久一区二区| www.成人.com| 最新久久zyz资源站| 8x8ⅹ国产精品一区二区二区| 国产探花视频在线观看| 婷婷中文字幕综合| 天天爽人人爽夜夜爽| 成人久久精品| 亚洲电影免费观看高清完整版在线观看| 久久久久麻豆v国产精华液好用吗 在线观看国产免费视频 | 午夜视频在线观看国产| 久久99免费视频| 精品国产拍在线观看| 久久久久久久九九九九| 免费日韩一区二区| 成人中文字幕+乱码+中文字幕| 亚洲av少妇一区二区在线观看| 99久久免费精品| 亚洲三区视频| 高清精品在线| 欧美日韩中文字幕一区| 黄色av电影网站| 不卡中文一二三区| 久久久久国产精品免费| 亚洲色成人www永久网站| 精品一区二区三区不卡| 国产综合精品一区二区三区| 一级毛片视频在线观看| 午夜精品久久久久久久蜜桃app| 不卡av免费在线| 超碰成人97| 中文字幕亚洲欧美日韩在线不卡| 国产一级特黄a高潮片| 免费视频最近日韩| 久久草视频在线看| 国产黄色在线免费观看| 色哟哟国产精品免费观看| 久久久久亚洲av无码麻豆| 亚洲人成精品久久久 | 久久精品日韩| 少妇视频在线| 欧美日韩另类国产亚洲欧美一级| 波多野结衣加勒比| 婷婷精品进入| 国产精品电影观看| 日韩在线视频第一页| 最新不卡av在线| 成人免费观看毛片| 国产精品巨作av| 久久夜色精品国产亚洲aⅴ| 在线观看 亚洲| av影院午夜一区| www.国产二区| 日韩在线观看一区二区三区| 中文字幕亚洲综合久久| av手机天堂网| 91免费在线视频观看| 欧美视频免费看欧美视频| 玖玖精品一区| 另类少妇人与禽zozz0性伦| 亚洲 小说区 图片区| 成人免费精品视频| av影院在线播放| yy6080久久伦理一区二区| 亚洲精品久久久一区二区三区| 欧美人妻一区二区| 国产精品一区二区视频| 中文字幕一区综合| 亚洲tv在线| 日韩在线播放av| 一级黄色免费看| 中文子幕无线码一区tr| 欧美精品成人网| 国产一区二区三区四区五区| 欧美亚洲另类视频| 四虎影院在线播放| 欧美性少妇18aaaa视频| 亚洲熟妇一区二区三区| 亚洲欧美成人综合| 免费亚洲精品视频| 向日葵视频成人app网址| 国产午夜精品全部视频在线播放| 少妇高潮av久久久久久| 国产农村妇女毛片精品久久麻豆 | 日韩av在线电影| 99久久夜色精品国产网站| 日韩中文字幕三区| 亚洲最大在线| 国产精品爽爽ⅴa在线观看| 四虎久久免费| 日韩亚洲欧美在线观看| 精品午夜福利在线观看| 成人av影院在线| 久久久免费视频网站| 神马电影久久| 成人乱色短篇合集| 国产乱码在线| 亚洲人永久免费| 91丨porny丨在线中文| 一区二区三区日本| 国产精品无码一区二区三| 久久久久国产精品一区三寸 | 欧美日韩视频| 麻豆av一区二区三区久久| 浪潮色综合久久天堂| 久久好看免费视频| 色婷婷av一区二区三区之e本道| 色综合夜色一区| 尤物在线免费视频| 99久久777色| 538在线视频观看| 欧美a级片网站| 美女被啪啪一区二区| 深夜福利亚洲| 97久久超碰福利国产精品…| 国产粉嫩一区二区三区在线观看 | wwwww在线观看| 久久精品一区二区国产| dy888午夜| 尤物tv在线精品| 91精品国产99久久久久久红楼| 亚洲精品动漫| 美女精品久久久| 日本在线一二三| 日韩免费一区二区| 波多野结衣网站| 亚洲成av人片观看| 黄色录像一级片| 久久伊99综合婷婷久久伊| 永久免费黄色片| 日韩成人一级片| 欧美精品自拍视频| 亚洲成人国产| 日本不卡一区二区三区在线观看 | 久久精品国产亚洲精品2020| 特黄视频在线观看| 欧美日韩国产大片| 国产无人区码熟妇毛片多| 亚洲日本电影在线| 一级肉体全黄裸片| gogo大胆日本视频一区| 少妇愉情理伦片bd| 美女www一区二区| 日本精品一区在线观看| 欧美一区精品| 亚洲欧美日韩精品综合在线观看| 日本三级久久| 国产精品露出视频| 伊人久久大香伊蕉在人线观看热v| 热久久美女精品天天吊色| a级片免费在线观看| 久久精品国产欧美激情| av电影在线网| 亚洲毛片在线免费观看| 日日夜夜精品免费| 日韩欧美色电影| 国产手机精品视频| 欧美欧美午夜aⅴ在线观看| 国产性生活视频| 欧美性猛交xxxx黑人| 亚洲免费在线观看av| 偷窥国产亚洲免费视频| 国产午夜精品无码| 夜夜揉揉日日人人青青一国产精品| 人人艹在线视频| 国产精品毛片高清在线完整版| 日韩av片在线| 欧美激情在线看| 调教驯服丰满美艳麻麻在线视频 | 精品国产髙清在线看国产毛片| 国产乱色精品成人免费视频| 欧美卡1卡2卡| 一区二区三区亚洲视频| 欧美撒尿777hd撒尿| 伊人久久一区二区| 欧美精三区欧美精三区| www.成年人| xxx在线免费观看| 欧美老女人性视频| 蜜臀av在线| 久久久久久久久久久91| av资源网在线播放| 69国产精品成人在线播放| 日韩精品av| 日本一区二区三区在线播放| 欧美极度另类| 国产精品视频在线观看| 日本午夜精品久久久久| 成人在线激情视频| 88久久精品| 久久久久久欧美精品色一二三四| 亚洲精品国产精品粉嫩| 日韩偷拍一区二区| 婷婷亚洲综合| 精品视频在线观看一区二区| 亚洲精品裸体| 国产v亚洲v天堂无码久久久 | 久久影视一区| 玖玖精品在线视频| 激情综合自拍| 国产视频在线视频| 国产一区二区不卡在线| 69亚洲乱人伦| 国产日韩欧美在线一区| 中文字幕资源站| 亚洲一二三区视频在线观看| 亚洲免费黄色网址| 欧美日韩在线播放三区四区| 国产女人高潮时对白| 亚洲国产精品女人久久久| 国产一级网站视频在线| 久久伊人免费视频| 2020国产在线| 国产日本欧美一区二区三区在线| 亚洲综合色婷婷在线观看| 久久一区二区三区欧美亚洲| 国产精品久久占久久| 浮妇高潮喷白浆视频| 看片网站欧美日韩| 性色av蜜臀av浪潮av老女人| 欧美国产精品专区| 日本熟妇一区二区| 欧美日本免费一区二区三区| 人妻一区二区三区免费| 中文字幕亚洲一区在线观看| 日本午夜大片a在线观看| 成人免费在线网址| 一呦二呦三呦国产精品| 日本天堂免费a| 日韩av一区二区三区四区| 成人三级做爰av| 国产日本亚洲高清| 日韩精品乱码久久久久久| 欧美精品日日鲁夜夜添| av女名字大全列表| 欧美另类老女人| 国产韩日精品| 久久久久久欧美精品色一二三四| 午夜精品久久久久99热蜜桃导演| youjizzxxxx18| 久久综合久久综合九色| 久久综合成人网| 欧美丰满少妇xxxbbb| 精彩国产在线| 91wwwcom在线观看| 影音先锋欧美激情| 中文字幕制服丝袜在线| 视频一区国产视频| 7788色淫网站小说| 亚洲已满18点击进入久久| 国产女无套免费视频| 这里只有精品视频| 户外露出一区二区三区| 精品欧美一区二区三区久久久 | 日本三级免费网站| 成人小视频在线| 九九精品在线观看视频| 欧美精品久久天天躁| 91高清在线视频| 国产精品xxx视频| 国产一区不卡| 久久久久久香蕉| 久久久久久电影| 青青视频在线免费观看| 日韩激情视频在线| 国产在线天堂www网在线观看| 国产精品乱码视频| 好吊视频一区二区三区四区| 巨乳女教师的诱惑| 亚洲精品国产一区二区三区四区在线 | wwwxxx在线观看| 国产精品人人做人人爽| 日韩精品二区| 成年人三级黄色片| 日韩美女精品在线| 国产免费的av| 欧美成在线视频| 第一区第二区在线| 欧美不卡在线播放| 91丝袜国产在线播放| av大片在线免费观看| 亚洲欧美国产一本综合首页| 欧美日韩大片| 亚洲一区二区三区午夜| 国产一区二三区| 久久网免费视频| 日韩av有码在线| 日韩不卡免费高清视频| 婷婷四房综合激情五月| 韩国成人在线视频| 精品无码m3u8在线观看| 亚洲第五色综合网| 肉色欧美久久久久久久免费看| 午夜精品一区二区在线观看的| 久久精品国产秦先生| 亚洲成人生活片| 精品处破学生在线二十三| 亚洲啊v在线| 色噜噜一区二区| 国产一区二区0| 999这里只有精品| 中文字幕日韩欧美在线| 日韩欧美一级| 色综合av综合无码综合网站| 国产精品色婷婷久久58| 亚洲国产成人一区二区| 国产成人av网| 最新国产精品| 久久精品国产亚洲av久| 欧美一区二区三区影视| 日本黄色免费在线| 欧美激情视频网站| 国产一级生活片| 亚洲人成亚洲人成在线观看| 四虎国产精品永久在线国在线| japanese在线播放| 久久久久久久久久久久久久久99| 国产精品伦一区二区三区| 久久久这里只有精品视频| 禁果av一区二区三区| 免费不卡av网站| 91精品办公室少妇高潮对白| 伊人电影在线观看| 日韩一本精品|