精品欧美一区二区三区在线观看 _久久久久国色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成人在线网站| 一区二区三区视频在线看| 激情视频一区二区| 亚洲天堂网视频| 亚洲无线视频| 在线观看精品国产视频| 992tv人人草| 69久成人做爰电影| 亚洲精品v日韩精品| 欧美日韩视频在线一区二区观看视频| 在线观看日韩一区二区| 亚洲福利久久| xxxxx成人.com| 亚洲第九十七页| 日韩一级淫片| 日本高清免费不卡视频| 久操手机在线视频| 成人h小游戏| 成人97人人超碰人人99| 成人福利在线观看| 免费无码国产精品| 影音先锋中文字幕一区| 久久精品中文字幕免费mv| 亚洲av无码一区二区二三区| 日韩一区免费| 欧美日韩午夜影院| 欧美v在线观看| 日本伦理一区二区| 亚洲三级久久久| 日韩精品伦理第一区| 天天色综合久久| 国产成人99久久亚洲综合精品| 国产女同一区二区| 青青艹在线观看| 久热综合在线亚洲精品| 午夜精品久久久久久久久久久久久| 国产美女福利视频| 日本道不卡免费一区| 亚洲午夜久久久影院| 性欧美成人播放77777| 国内毛片久久| 亚洲精品一区二区三区精华液| 亚洲综合欧美激情| 天然素人一区二区视频| 91成人看片片| 国产三级日本三级在线播放| 在线观看欧美日韩电影| 欧美日韩中文字幕在线视频| www黄色日本| 亚洲午夜天堂| 在线视频一区二区三区| 国产免费人做人爱午夜视频| 香蕉视频亚洲一级| 在线观看免费视频综合| 日本人视频jizz页码69| 日韩欧乱色一区二区三区在线 | 亚洲一区在线不卡| 91精品店在线| 欧美日本国产视频| 中文字幕12页| 日韩三级精品| 日韩精品在线播放| 国产肥白大熟妇bbbb视频| 精品国产欧美日韩| www.亚洲一区| 欧美日韩在线视频免费播放| 国产综合自拍| 日韩av免费在线看| 中文字幕 日韩有码| 精品中文字幕一区二区| 成人激情直播| 秋霞av在线| 国产精品久久看| 国产又粗又长又爽视频| 成人影院在线视频| 色域天天综合网| av中文字幕网址| 中文在线综合| 亚洲欧美自拍一区| 顶级黑人搡bbw搡bbbb搡| 国产精品久久| 国产成人综合一区二区三区| 97超视频在线观看| av在线一区二区| 日韩激情久久| 欧美xxxx黑人又粗又长| 日本高清视频一区二区| 日本r级电影在线观看| 色爱av综合网| 久久亚洲国产精品成人av秋霞| 久久久久久久久久99| 久久一区二区三区四区五区 | 999免费视频| 99久久婷婷国产综合精品电影 | 日日夜夜天天综合入口| 欧美日韩国产综合新一区| 国产三级国产精品国产专区50| 日本免费一区二区视频| 亚洲美女性视频| 国产高清在线免费观看| 久久精品一本| 国产欧美日韩综合一区在线观看| 国产黄色在线| 亚洲3atv精品一区二区三区| 日韩av片网站| 色婷婷狠狠五月综合天色拍| 久久影视电视剧免费网站清宫辞电视| 一级aaa毛片| 激情久久五月天| 欧美精品国产精品久久久| 18+激情视频在线| 在线欧美小视频| 欧美在线一级片| 欧美国产高潮xxxx1819| 国产精品久久一区主播| 天堂视频中文在线| 亚洲一区二区三区四区的| www.天天射.com| 香蕉国产成人午夜av影院| 欧美精品一区二区免费| 91丨九色丨丰满| 国产亚洲精品aa| 国产无套内射久久久国产| 综合中文字幕| 欧美激情18p| 国产老女人乱淫免费| 国产精品家庭影院| 亚洲欧美激情网| 深爱激情综合网| 欧洲亚洲在线视频| 亚洲欧美自偷自拍| 午夜精品在线看| 久久免费精品国产| 欧美日韩亚洲一区| 97视频资源在线观看| 麻豆网站在线免费观看| 欧美美女一区二区| 麻豆一区在线观看| 久草在线在线精品观看| 久久精品国产免费观看| 黄色三级中文字幕| 三上悠亚激情av一区二区三区 | 亚洲人www| 99久久自偷自偷国产精品不卡| a在线免费观看| 91精品国产综合久久福利软件| 老司机精品免费视频| 久久婷婷丁香| 精品久久久久久亚洲| 99爱在线视频| 久久日韩精品一区二区五区| 欧美国产日韩激情| 哺乳挤奶一区二区三区免费看| 欧美激情在线狂野欧美精品| 国产激情视频在线播放| 亚洲自拍偷拍综合| 中文字幕 日本| 久久久久久夜| 亚洲欧美国产不卡| 日韩一区二区三区四区五区| 久久成人免费视频| 六月丁香色婷婷| 一本色道久久综合精品竹菊| 伊人网在线视频观看| 免费看精品久久片| 精品一区二区成人免费视频| 一区二区免费| 91精品国产成人www| 九色在线播放| 欧美二区在线观看| 国产成人精品av久久| 2021中文字幕一区亚洲| 日本黄大片一区二区三区| 综合激情视频| 久久久久久亚洲精品不卡4k岛国| 日韩在线免费| 久久精品中文字幕免费mv| 隣の若妻さん波多野结衣| 色综合婷婷久久| 97在线观看免费高| av电影在线观看一区| 国产一级做a爰片久久| 国产一区欧美| 视频二区一区| 高潮久久久久久久久久久久久久| 人人澡人人澡人人看欧美| 三区四区在线视频| 亚洲国产天堂久久综合| 伊人成人在线观看| 亚洲国产精品久久艾草纯爱| 中文字幕成人动漫| 国产精品456| 日韩中文字幕免费在线| 欧美一区视频| 翔田千里亚洲一二三区| 粉嫩精品导航导航| 成人黄色av免费在线观看| 草草视频在线观看| 超碰97人人做人人爱少妇| 日韩亚洲视频在线观看| 欧美一区二区三区在线电影| 男人天堂2024| 一卡二卡三卡日韩欧美| 亚洲一区二区自偷自拍| 国产91精品在线观看| 自拍偷拍一区二区三区四区| 国产亚洲精品bv在线观看| 黄瓜视频免费观看在线观看www| 欧美天堂影院| 成人av片网址| 精品国产第一国产综合精品| 国产精品69精品一区二区三区| 黄网站在线观| 久久亚洲国产成人| 91福利在线视频| 日韩久久精品成人| 丰满岳乱妇国产精品一区| 91精品一区二区三区久久久久久| 成人免费毛片视频| 欧美日韩国产一区中文午夜| 精品无码av在线| 亚洲麻豆国产自偷在线| 久久精品日韩无码| 亚洲国产高清在线观看视频| 日本黄色网址大全| 99国内精品久久| 久久久国产精品久久久| 国内国产精品久久| 中文字幕亚洲影院| 精品一区二区三区视频| 一区二区三区免费播放| 日欧美一区二区| 国产精品99久久免费黑人人妻| 国产精品久久久久久久免费软件| 国产妇女馒头高清泬20p多| 午夜精品视频| 18黄暴禁片在线观看| 精品成人一区| 黄色一级片在线看| 在线国产精品一区| 欧美亚洲日本一区二区三区| 国产精品激情| 精品无码一区二区三区在线| 国产欧美综合一区二区三区| av在线播放亚洲| 在线亚洲欧美| 无码精品国产一区二区三区免费| 久久精品一区| 欧美成人黄色网址| 精品在线一区二区| 亚洲av毛片在线观看| 国产成人亚洲综合a∨猫咪| 美女又黄又免费的视频| 国产91精品一区二区| 精品无码国产一区二区三区51安| 91亚洲国产成人精品一区二区三| 精品国产av色一区二区深夜久久 | 欧美成人另类视频| 欧美激情一区二区三区蜜桃视频 | 色综合天天视频在线观看| 国产免费一区二区三区四区五区| 在线免费亚洲电影| 在线观看国产黄| 日韩欧美成人午夜| 午夜视频福利在线| 中文字幕亚洲综合久久| www免费在线观看| 97成人精品区在线播放| www.久久.com| 国产91视觉| 精品久久97| 亚欧洲精品在线视频免费观看| 久久精品影视| 免费看又黄又无码的网站| 日韩高清国产一区在线| 91大神免费观看| 91一区二区三区在线播放| 公肉吊粗大爽色翁浪妇视频| 日韩一区在线看| 日本在线免费观看| 欧美三级中文字幕| 日本黄色三级视频| 在线观看成人黄色| 久草在线资源站资源站| 日本一区二区在线免费播放| 激情久久免费视频| 蜜桃麻豆www久久国产精品| 婷婷亚洲图片| 国产真实乱子伦| 国产精品99久久不卡二区| 亚洲一区二区观看| 一区二区三区免费| 波多野结衣在线观看视频| 欧美大片在线观看| 91caoporm在线视频| 97国产精品视频| 日韩亚洲国产免费| 欧美精品久久| 黄色亚洲大片免费在线观看| 日本人视频jizz页码69| 26uuu欧美| 久久久久久免费观看| 欧美午夜视频网站| 国产精品国产高清国产| 欧美精品在线第一页| 黄色精品视频| 蜜桃成人免费视频| 亚洲特级毛片| 久久成年人网站| 欧美激情综合五月色丁香| 国产午夜精品无码| 日韩三级免费观看| 欧美边添边摸边做边爱免费| 国产999精品久久久| 精品资源在线| 中国丰满熟妇xxxx性| 国产一本一道久久香蕉| 网爆门在线观看| 91国偷自产一区二区三区观看 | www国产精品com| 国产一区二区三区影视| 久久综合福利| 在线亚洲一区| 久久人人爽人人人人片| 亚洲一区二区三区美女| 国产精品怡红院| 久久精品中文字幕| 亚洲综合资源| 亚洲一区二区在线看| 免费观看久久久4p| 精品人妻无码一区| 欧美伊人久久久久久久久影院| 五月天婷婷视频| 91国语精品自产拍在线观看性色 | 9l视频自拍蝌蚪9l视频成人| 伊人av成人| 六月丁香综合在线视频| 欧美a在线播放| 欧美日韩一区二区三区在线| 95在线视频| 国产欧美最新羞羞视频在线观看| 成人看的羞羞网站| 污污动漫在线观看| 1区2区3区精品视频| 97人妻精品一区二区三区软件| 色阁综合伊人av| 不卡精品视频| 国产91在线亚洲| 不卡在线观看av| 特级做a爱片免费69| 一本一道久久a久久精品逆3p| 日韩一级二级| 亚洲一区二区三区在线观看视频| 精品一区二区在线视频| 黑人巨大精品一区二区在线| 精品久久久久久久久久久久包黑料 | 男女视频在线看| 1024亚洲合集| www黄色网址| 午夜精品三级视频福利| 亚洲精华一区二区三区| 日韩视频免费在线播放| 国产精品福利电影一区二区三区四区| 国产精品亚洲lv粉色| 欧美激情aaaa| 国产欧美日韩| 亚洲日本黄色片| 午夜欧美在线一二页| 人操人视频在线观看| 成人激情春色网| 黄页网站一区| 免费看91的网站| 91精品国产91综合久久蜜臀| 欧美精品videosex| 欧美另类视频在线| 狠狠色狠狠色综合系列| 国产一级在线视频| 在线观看不卡av| av综合网页| 黄色一级免费大片| 亚洲柠檬福利资源导航| 五月婷婷在线观看视频| 国产精品一区二区在线| 在线免费观看欧美| 色欲狠狠躁天天躁无码中文字幕 | 国产福利在线免费观看| 欧美大香线蕉线伊人久久| 精彩视频一区二区三区| 国产又色又爽又黄的| 日韩在线视频线视频免费网站| 51精品国产| 2025韩国理伦片在线观看| 亚洲大片在线观看| 午夜激情视频在线观看| 国产青春久久久国产毛片| 精品一区二区三区视频在线观看 | 狠狠色丁香久久婷婷综|