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

首頁 > 學院 > 開發設計 > 正文

有關UIView、subview的幾個基礎知識點-IOS開發(實例)

2019-11-14 19:58:46
字體:
來源:轉載
供稿:網友

環境是xcode4.3

 

首先要弄懂幾個基本的概念。

 

一)三個結構體:CGPoint、CGSize、CGRect

 

1.  CGPoint

C代碼 復制代碼 收藏代碼
  1. /* Points. */    
  2.     
  3. struct CGPoint {    
  4.   CGFloat x;    
  5.   CGFloat y;    
  6. };    
  7. typedef struct CGPoint CGPoint;  
/* Points. */    struct CGPoint {    CGFloat x;    CGFloat y;  };  typedef struct CGPoint CGPoint;

看到這個想必你已經懂了,不再解釋。

 

2.  CGSize

C代碼 復制代碼 收藏代碼
  1. /* Sizes. */    
  2.     
  3. struct CGSize {    
  4.   CGFloat width;    
  5.   CGFloat height;    
  6. };    
  7. typedef struct CGSize CGSize;   
/* Sizes. */    struct CGSize {    CGFloat width;    CGFloat height;  };  typedef struct CGSize CGSize; 

不解釋。

 

3.CGRect

C代碼 復制代碼 收藏代碼
  1. /* Rectangles. */    
  2.     
  3. struct CGRect {    
  4.   CGPoint origin;//偏移是相對父窗口的    
  5.   CGSize size;    
  6. };    
  7. typedef struct CGRect CGRect;   
/* Rectangles. */    struct CGRect {    CGPoint origin;//偏移是相對父窗口的    CGSize size;  };  typedef struct CGRect CGRect; 

同樣 不解釋。

 

這三個結構體均在一個頭文件里:CGGeometry.h

 

二)幾個方法

 

1.CGRectMake

C代碼 復制代碼 收藏代碼
  1. CG_INLINE CGRect    
  2. CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)    
  3. {    
  4.   CGRect rect;    
  5.   rect.origin.x = x; rect.origin.y = y;    
  6.   rect.size.width = width; rect.size.height = height;    
  7.   return rect;    
  8. }    
CG_INLINE CGRect  CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)  {    CGRect rect;    rect.origin.x = x; rect.origin.y = y;    rect.size.width = width; rect.size.height = height;    return rect;  }  

 

沒錯,這個方法就是make一個rect,定好origin(起點,左上角),寬與高,就可以畫出一個位置與大小確定的rect(矩形)這個函數被聲明為內聯函數,一是因為它比較小,二是因為在畫界面時我們要求一定的效率。這個函數還是藏在剛剛那個頭文件里面:CGGeometry.h

 

三)幾個基本界面元素:window(窗口)、視圖(view)

 

要在屏幕上顯示內容首先要創建一個窗口承載內容,要創建一個窗口,需要一個邊框(frame),含有邊框信息的底層 結構就CGRect。每個能夠在屏幕上顯示自己的對象都有一個邊框,定義了他的顯示區域,不過許多高層的視圖類會自動計算這一信息。其他的那些類則在視圖初始化時通過一個initWithFrame的初始化方法來設置。

 

再來認識一個類:UIScreen。UIScreen類代表了屏幕,通過這個類我們可以獲取一些想要的東東。

C代碼 復制代碼 收藏代碼
  1. CGrect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是帶有狀態欄的Rect    
  2. CGRect viewBounds = [ [UIScreen mainScreen]applicationFrame];//不包含狀態欄的Rect    
  3. //screenBounds 與 viewBounds 均是相對于設備屏幕來說的    
  4. //所以 screenBounds.origin.x== 0.0 ;   screenBounds.oringin.y = 0.0;       
  5. screenBounds.size.width == 320;  screenBounds.size.height == 480(或者其他分辨率有所差異)    
  6. //所以 screenBounds.origin.x== 0.0 ;   screenBounds.oringin.y = 20.0;(因為狀態欄的高度是20像素)   screenBounds.size.width == 320;  screenBounds.size.height == 480    
CGrect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是帶有狀態欄的Rect  CGRect viewBounds = [ [UIScreen mainScreen]applicationFrame];//不包含狀態欄的Rect  //screenBounds 與 viewBounds 均是相對于設備屏幕來說的  //所以 screenBounds.origin.x== 0.0 ;   screenBounds.oringin.y = 0.0;     screenBounds.size.width == 320;  screenBounds.size.height == 480(或者其他分辨率有所差異)  //所以 screenBounds.origin.x== 0.0 ;   screenBounds.oringin.y = 20.0;(因為狀態欄的高度是20像素)   screenBounds.size.width == 320;  screenBounds.size.height == 480  

 

UIView

 

下面來認識一下UIView類,這個類繼承自UIResponder,看這個名字我們就知道它是負責顯示的畫布,如果說把window比作畫框的話。我們就是不斷地在畫框上移除、更換或者疊加畫布,或者在畫布上疊加其他畫布,大小當然 由繪畫者來決定了。有了畫布,我們就可以在上面任意施為了。很多簡單的東西我會把庫里面的內容貼出來,如果東西太多貼出來就不太好,朋友們自己去庫文件里面看吧。這個類在UIView.h里面。下面我們先學習一些基礎的東西,其他的東東會在以后慢慢展開。

 

C代碼 復制代碼 收藏代碼
  1. UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];//這里創建了一塊畫布,定義了相對于父窗口的位置, 以及大小。    
UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];//這里創建了一塊畫布,定義了相對于父窗口的位置, 以及大小。  

 

我們可以把這塊畫布加到其他畫布上,具體方法后面會講到。我們還可以在這塊畫布上畫上其它好玩的東東,具體情形后面會一一講解。

 

UIWindow

 

UIWindow繼承自UIView,關于這一點可能有點邏輯障礙,畫框怎么繼承自畫布呢?不要過于去專牛角尖,畫框的形狀不就是跟畫布一樣嗎?拿一塊畫布然后用一些方法把它加強,是不是可以當一個畫框用呢?這也是為什么 一個view可以直接加到另一個view上去的原因了。

 

看一下系統的初始化過程(在application didFinishLauchingWithOptions里面):

C代碼 復制代碼 收藏代碼
  1. self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];    
  2. self.window.backgroundColor = [UIColor grayColor];//給window設置一個背景色    
  3. [self.window makeKeyAndVisible];//讓window顯示出來    
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  self.window.backgroundColor = [UIColor grayColor];//給window設置一個背景色  [self.window makeKeyAndVisible];//讓window顯示出來  

 

實戰演練:

 

沒結束我會用一個綜合的 例子來總結我的學習成果,徹底理解所學,我覺得既然選擇寫代碼,就要理解原理,否則只知其然不知其所以然是不能做一個好的程序員的。

 

1)新建一個工程選擇Empty Application   名字為LW1 2)在application didFinishLaunchingWithOptions里面,你會發現系統已經建好一個畫框了,我們現在就用系統幫我們建好的畫框,你當然也可以自己建一個畫框,不過沒這個必要了,忘了講了,一個應用程序只能有一個畫框。

 

C代碼 復制代碼 收藏代碼
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  4.     // Override point for customization after application launch.  
  5.       
  6.     CGRect bound = [[UIScreen mainScreen]bounds];  
  7.     NSLog(@"boundwith:%f    boundheight:%f",bound.size.width,bound.size.height);  
  8.     NSLog(@"boundx:%f    boundy:%f",bound.origin.x,bound.origin.y);  
  9.       
  10.     CGRect appBound = [[UIScreen mainScreen]applicationFrame];  
  11.     NSLog(@"appBoundwith:%f    boundheight:%f",appBound.size.width,appBound.size.height);  
  12.     NSLog(@"appBoundx:%f    boundy:%f",appBound.origin.x,appBound.origin.y);      
  13.       
  14.     //畫第一塊畫布然涂成藍色,大小是320 X 100  
  15.     CGRect CGone = CGRectMake(0.0, 0.0, 320, 100);//畫個矩形,初始化位置與大小  
  16.     UIView *v_one = [[UIView alloc]initWithFrame:CGone];//初始化view  
  17.     v_one.backgroundColor = [UIColor blueColor];// 涂成藍色  
  18.     [self.window addSubview:v_one];//直接加到畫框上  
  19.       
  20.     //第二塊注意它的位置  
  21.     CGRect CGtwo = CGRectMake(0.0, 100, 160, 100);//畫個矩形、初始化位置與大小  
  22.     UIView *v_two = [[UIView alloc]initWithFrame:CGtwo];//初始化view  
  23.     v_two.backgroundColor = [UIColor redColor];//涂成紅色  
  24.     [self.window addSubview:v_two];//疊加到畫框  
  25.     //第三塊注意他的位置  
  26.     CGRect CGthree = CGRectMake(160, 100, 160, 100);//  
  27.     UIView *v_three = [[UIView alloc]initWithFrame:CGthree];//  
  28.     v_three.backgroundColor = [UIColor greenColor];//  
  29.     [self.window addSubview:v_three];//  
  30.     //第四塊注意它的位置  
  31.     CGRect CGfour = CGRectMake(0.0, 260, 320, 200);//  
  32.     UIView *v_four = [[UIView alloc]initWithFrame:CGfour];//  
  33.     v_four.backgroundColor = [UIColor orangeColor];//  
  34.     [self.window addSubview:v_four];//  
  35.     //第五塊,計算一下它的位置,看看它的效果,  
  36.     //你可以讓試一下把這段代碼移到第一快初始化的上面試試,會有意想不到的效果  
  37.     CGRect CGfive = CGRectMake(100, 150, 160, 200);  
  38.     UIView *v_five = [[UIView alloc]initWithFrame:CGfive];  
  39.     v_five.backgroundColor = [UIColor yellowColor];  
  40.     [self.window addSubview:v_five];  
  41.     self.window.backgroundColor = [UIColor grayColor];//  
  42.     [self.window makeKeyAndVisible];//  
  43.       
  44.     //最后記得release    
  45.     v_one = nil;  
  46.     v_two = nil;  
  47.     v_three = nil;  
  48.     v_four = nil;  
  49.     v_five = nil;  
  50.       
  51.     return YES;    
  52.     //self.window.backgroundColor = [UIColor whiteColor];  
  53.     //[self.window makeKeyAndVisible];  
  54.     //return YES;  
  55. }  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    // Override point for customization after application launch.        CGRect bound = [[UIScreen mainScreen]bounds];    NSLog(@"boundwith:%f    boundheight:%f",bound.size.width,bound.size.height);    NSLog(@"boundx:%f    boundy:%f",bound.origin.x,bound.origin.y);        CGRect appBound = [[UIScreen mainScreen]applicationFrame];    NSLog(@"appBoundwith:%f    boundheight:%f",appBound.size.width,appBound.size.height);    NSLog(@"appBoundx:%f    boundy:%f",appBound.origin.x,appBound.origin.y);            //畫第一塊畫布然涂成藍色,大小是320 X 100    CGRect CGone = CGRectMake(0.0, 0.0, 320, 100);//畫個矩形,初始化位置與大小    UIView *v_one = [[UIView alloc]initWithFrame:CGone];//初始化view    v_one.backgroundColor = [UIColor blueColor];// 涂成藍色    [self.window addSubview:v_one];//直接加到畫框上        //第二塊注意它的位置    CGRect CGtwo = CGRectMake(0.0, 100, 160, 100);//畫個矩形、初始化位置與大小    UIView *v_two = [[UIView alloc]initWithFrame:CGtwo];//初始化view    v_two.backgroundColor = [UIColor redColor];//涂成紅色    [self.window addSubview:v_two];//疊加到畫框    //第三塊注意他的位置    CGRect CGthree = CGRectMake(160, 100, 160, 100);//    UIView *v_three = [[UIView alloc]initWithFrame:CGthree];//    v_three.backgroundColor = [UIColor greenColor];//    [self.window addSubview:v_three];//    //第四塊注意它的位置    CGRect CGfour = CGRectMake(0.0, 260, 320, 200);//    UIView *v_four = [[UIView alloc]initWithFrame:CGfour];//    v_four.backgroundColor = [UIColor orangeColor];//    [self.window addSubview:v_four];//    //第五塊,計算一下它的位置,看看它的效果,    //你可以讓試一下把這段代碼移到第一快初始化的上面試試,會有意想不到的效果    CGRect CGfive = CGRectMake(100, 150, 160, 200);    UIView *v_five = [[UIView alloc]initWithFrame:CGfive];    v_five.backgroundColor = [UIColor yellowColor];    [self.window addSubview:v_five];    self.window.backgroundColor = [UIColor grayColor];//    [self.window makeKeyAndVisible];//        //最后記得release      v_one = nil;    v_two = nil;    v_three = nil;    v_four = nil;    v_five = nil;        return YES;      //self.window.backgroundColor = [UIColor whiteColor];    //[self.window makeKeyAndVisible];    //return YES;}

 

 

來源:http://blog.csdn.net/iukey/article/details/7083165

 

 

 

取得畫面工作區域的大小

 

 iOS 可以在很多 Apple 的裝置上執行,然而每個裝置所提供的工作區域大小 Application Frame 也不盡香同,下面提供一個簡單的方法,幫助你可以快速找出目前工作區域的畫面的大小,程式碼如下。

 

 首先是狀態列 Status Bar 的部份。

 

C代碼 復制代碼 收藏代碼
  1. //取得StatusBar的位置和大小  
  2. [self.view addSubview:theToolbar];  
  3. CGRect statusBarRect = [[UIApplication sharedApplication]statusBarFrame];  
  4.   
  5. NSLog(@/"%@/", NSStringFromCGRect(statusBarRect));  
 //取得StatusBar的位置和大小 [self.view addSubview:theToolbar]; CGRect statusBarRect = [[UIApplication sharedApplication]statusBarFrame]; NSLog(@/"%@/", NSStringFromCGRect(statusBarRect));

 

 再來是可工作區域的大小,如果你的應用程式包含狀態列,那么可工作區域的大小就會是整個畫面的減去狀態列所剩下的區域。

 

C代碼 復制代碼 收藏代碼
  1. //取得工作區域的位置和大小  
  2. CGRect workSpaceRect = [[UIScreen mainScreen]applicationFrame];  
  3.   
  4. NSLog(@/"%@/", NSStringFromCGRect(workSpaceRect));  
 //取得工作區域的位置和大小 CGRect workSpaceRect = [[UIScreen mainScreen]applicationFrame]; NSLog(@/"%@/", NSStringFromCGRect(workSpaceRect));

 

 最后就是整個畫面的大小。

 

C代碼 復制代碼 收藏代碼
  1. //取得整個畫面的位置和大小  
  2. CGRect windowRect = [[UIScreen mainScreen]bounds];  
  3.   
  4. NSLog(@/"%@/", NSStringFromCGRect(windowRect));  
 //取得整個畫面的位置和大小 CGRect windowRect = [[UIScreen mainScreen]bounds]; NSLog(@/"%@/", NSStringFromCGRect(windowRect));

 

 上述程式碼皆是將取得的大小范圍資訊儲存在 CGRect 型態的變數中,再將此變數以字串的方式顯示出來。

 

來源:http://furnacedigital.blogspot.com/2011/10/blog-post_13.html

 

 

一些 UIView 中管理 Subview 常用的方法

 

 

 一個 UIView 里面可以包含許多的 Subview(其他的 UIView),而這些 Subview 彼此之間是有所謂的階層關系,這有點類似繪圖軟體中圖層的概念,下面程式碼示演示了幾個在管理圖層(Subview)上常用的方法,其程式碼如下。

 

 首先是大家最常使用的新增和移除 Subview。

C代碼 復制代碼 收藏代碼
  1. //將Subview從當前的UIView中移除  
  2. [Subview removeFromSuperview];  
  3.   
  4. //替UIView增加一個Subview  
  5. [UIView addSubview:Subview];  
 //將Subview從當前的UIView中移除 [Subview removeFromSuperview]; //替UIView增加一個Subview [UIView addSubview:Subview];

 

 在 UIView 中將 Subview 往前或是往后移動一個圖層,往前移動會覆蓋住較后層的 Subview,而往后移動則會被較上層的 Subview 所覆蓋。

C代碼 復制代碼 收藏代碼
  1. //將Subview往前移動一個圖層(與它的前一個圖層對調位置)  
  2. [UIView bringSubviewToFront:Subview];  
  3.   
  4. //將Subview往后移動一個圖層(與它的后一個圖層對調位置)  
  5. [UIView sendSubviewToBack:Subview];  
 //將Subview往前移動一個圖層(與它的前一個圖層對調位置) [UIView bringSubviewToFront:Subview]; //將Subview往后移動一個圖層(與它的后一個圖層對調位置) [UIView sendSubviewToBack:Subview];

 

 在 UIView 中使用索引 Index 交換兩的 Subview 彼此的圖層層級。

C代碼 復制代碼 收藏代碼
  1. //交換兩個圖層  
  2. [UIView exchangeSubviewAtIndex:indexA withSubviewAtIndex:indexB];  
 //交換兩個圖層 [UIView exchangeSubviewAtIndex:indexA withSubviewAtIndex:indexB];

 

 使用 Subview 的變數名稱取得它在 UIView 中的索引值(Index )。

C代碼 復制代碼 收藏代碼
  1. //取得Index  
  2. NSInteger index = [[UIView subviews] indexOfObject:Subview名稱];  
 //取得Index NSInteger index = [[UIView subviews] indexOfObject:Subview名稱];

 

 替 Subview 加上 NSInteger 的註記 (Tag),好讓之后它們分辨彼此。

C代碼 復制代碼 收藏代碼
  1. //加上註記  
  2. [Subview setTag:NSInteger];  
 //加上註記 [Subview setTag:NSInteger];

 

 最后是取得 UIView 中所有的 Subview,呼叫此方法會傳回一個 NSArray,并以由后往前的順序列出這些 Subview,下圖中是列出范例圖片里 Root 中所有的 Subview。

C代碼 復制代碼 收藏代碼
  1. //取的UIView下的所有Subview  
  2. [UIView subviews]  
 //取的UIView下的所有Subview [UIView subviews]

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本不卡视频在线播放| 国产91精品久久久久久| 欧美亚洲国产成人精品| 亚洲欧洲第一视频| 在线成人激情黄色| 久久理论片午夜琪琪电影网| 久久91超碰青草是什么| 97在线视频观看| 日韩女在线观看| 国产美女直播视频一区| 亚洲性av网站| 欧美在线性爱视频| 黄网动漫久久久| 91久久久久久久久| 亚洲午夜国产成人av电影男同| 6080yy精品一区二区三区| 亚洲色图50p| 欧美激情一区二区三区成人| 精品久久久久久亚洲国产300| 欧美高清第一页| 超薄丝袜一区二区| 高清日韩电视剧大全免费播放在线观看| 亚洲成人在线网| 中文字幕av日韩| 91精品国产综合久久久久久久久| 欧美乱人伦中文字幕在线| 中文字幕在线国产精品| 国产精品v日韩精品| 国产精品av免费在线观看| 日韩精品在线视频观看| 国产精品18久久久久久首页狼| 国产精品久久久久免费a∨大胸| 亚洲欧美一区二区精品久久久| 国产成人激情小视频| 97久久久久久| 国产精品视频xxx| 全亚洲最色的网站在线观看| 精品久久久久久久久久久久| 色偷偷偷亚洲综合网另类| 亚洲wwwav| 中文字幕亚洲无线码a| 丰满岳妇乱一区二区三区| 一区二区欧美激情| 亚洲色图35p| 国产精品扒开腿做爽爽爽男男| 欧美一级电影免费在线观看| 中文字幕日韩精品在线观看| 免费成人高清视频| 国产精品一区二区三| 日韩精品高清在线| 日本欧美国产在线| 亚洲欧美日韩国产中文专区| 欧美性videos高清精品| 668精品在线视频| 91麻豆国产语对白在线观看| 91在线观看免费| 亚洲人成网站777色婷婷| 久久久久久国产精品久久| 精品国产一区二区三区久久狼黑人| 欧美电影免费观看大全| 成人国产精品一区| 一区二区三欧美| 亚洲精品久久久久国产| 国产精品稀缺呦系列在线| 久久久久久中文字幕| 精品亚洲夜色av98在线观看| 欧美激情视频在线观看| 国产999精品视频| 日韩成人在线视频网站| 精品国产美女在线| 欧美在线视频观看免费网站| 成人黄色影片在线| 日本精品视频在线观看| 国产精品人成电影| 热久久99这里有精品| 亚洲精品久久久一区二区三区| 欧美在线一区二区视频| 亚洲成在人线av| 91精品视频播放| 亚洲a级在线观看| 日韩在线观看你懂的| 久久综合国产精品台湾中文娱乐网| 最近2019免费中文字幕视频三| 欧美特黄级在线| 91av视频在线免费观看| 久久久人成影片一区二区三区观看| 欧美日韩中文字幕综合视频| 国产极品jizzhd欧美| 性欧美激情精品| 91精品成人久久| 亚洲国产精品专区久久| 一区二区av在线| 热门国产精品亚洲第一区在线| 国产不卡一区二区在线播放| 日本免费久久高清视频| 亚洲一区二区在线| 精品女同一区二区三区在线播放| 一区二区亚洲精品国产| 亚洲欧洲午夜一线一品| xvideos成人免费中文版| 精品亚洲一区二区三区四区五区| 久热精品视频在线| 亚洲欧美精品一区二区| 欧美精品在线观看91| 人妖精品videosex性欧美| 亚洲欧美国产高清va在线播| 国产精品扒开腿爽爽爽视频| 久久精品国亚洲| 秋霞成人午夜鲁丝一区二区三区| 日韩视频―中文字幕| 久久精品在线视频| 亚洲成人久久一区| 亚洲韩国日本中文字幕| 久久久久久成人精品| 国产成人在线精品| 日韩av在线网址| 亚洲天堂男人天堂女人天堂| 国产精品午夜视频| 欧美性感美女h网站在线观看免费| 91精品91久久久久久| 日韩在线国产精品| 成人免费视频在线观看超级碰| 色老头一区二区三区在线观看| 国产91精品久久久久久久| 91免费国产视频| 狠狠躁夜夜躁人人躁婷婷91| 色香阁99久久精品久久久| 精品久久久久久亚洲精品| 亚洲欧美日本精品| 欧美性受xxxx白人性爽| 日本免费久久高清视频| 欧美激情视频一区二区三区不卡| 日韩成人中文字幕在线观看| 精品国产一区二区三区久久狼黑人| 亚洲性视频网址| 欧美午夜影院在线视频| 日韩精品亚洲视频| 国产精品劲爆视频| 91在线|亚洲| 色无极影院亚洲| 国产精品色婷婷视频| 日韩av中文字幕在线播放| 92福利视频午夜1000合集在线观看| 亚洲free性xxxx护士白浆| 亚洲色图日韩av| 久久久精品在线观看| zzijzzij亚洲日本成熟少妇| 欧美成人合集magnet| 国产精品96久久久久久又黄又硬| 国产精品吹潮在线观看| 成人欧美在线观看| 黄色精品在线看| 久久这里只有精品视频首页| 青青在线视频一区二区三区| 不卡毛片在线看| 久久视频在线免费观看| 欧美日韩亚洲一区二区三区| 亚洲精品第一国产综合精品| 日本伊人精品一区二区三区介绍| 国产成人91久久精品| 久99九色视频在线观看| 日韩大片免费观看视频播放| 日韩av三级在线观看| 精品亚洲一区二区三区|