3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )

發(fā)布時(shí)間:2025/6/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一. 代碼生成控件
    • 1. 創(chuàng)建設(shè)置項(xiàng)目
      • ( 1 ) 創(chuàng)建項(xiàng)目 ( ① 選擇 Create a new Xcode project | ② 創(chuàng)建 Single View Application 項(xiàng)目 | ③ 設(shè)置項(xiàng)目信息 | ④ 設(shè)置代碼路徑并創(chuàng)建 )
      • ( 2 ) 界面設(shè)置 ( ① 選中 ViewController | ② 屬性查看器 -> Simulated Metrics -> Size | ③ 設(shè)置 iPhone 4.7-inch )
    • 2. 設(shè)置按鈕及添加事件
      • ( 1 ) 添加按鈕事件 ( Control + 左鍵 拖動(dòng)到 代碼中 生成按鈕方法 )
      • ( 2 ) 修改按鈕文字 ( ① 雙擊控件 | ② 修改 Tittle 屬性 )
    • 3. 生成 UIView 控件 并 查看 View 層級(jí)
      • ( 1 ) 代碼 生成 UIView 控件 ( ① 創(chuàng)建控件 | ② 設(shè)置 frame | ③ 設(shè)置顏色 | ④ 添加控件 )
      • ( 2 ) 運(yùn)行并查看效果 ( 查看 View 層次 )
    • 4. 代碼生成按鈕 并 綁定事件
      • ( 1 ) 代碼生成 按鈕 ( ① 創(chuàng)建按鈕控件 | ② 設(shè)置 frame | ③ 設(shè)置文字( 顏色 ) | ④ 設(shè)置背景( 前景 )圖片 | ⑤ 綁定事件 | ⑥ 添加控件 )
  • 二. UIView 屬性 和 子控件操作
      • ( 1 ) 創(chuàng)建 設(shè)置 應(yīng)用 ( ① 創(chuàng)建應(yīng)用 | ② 設(shè)置界面尺寸 )
      • ( 2 ) 設(shè)置 Main.storyboard UI 界面 ( ① 背景 )
      • ( 3 ) 在 ViewController.m 關(guān)聯(lián) 控件變量 ( ① 按住 Control 拖拽 控件 到 @interface 代碼塊中 | ② Connect 對(duì)話框 設(shè)置 名稱 類型 )
      • ( 4 ) 生成 子組件 代碼 ( ① 生成子組件 | ② 設(shè)置子組件屬性 | ③ 設(shè)置子組件 frame 屬性 [ 隨機(jī)位置生成 ] | ④ 添加子組件到父容器中 )
      • ( 5 ) 刪除 子組件 代碼 ( ① 獲取子組件數(shù)組 | ② 使用 for in 循環(huán)刪除子組件 | ③ isKindOfClass 判定組件類型 )
      • ( 6 ) 刪除 指定 Tag 的控件 的 代碼 ( ① 調(diào)用父控件的 viewWithTag 方法 | ② )
      • ( 7 ) UIView 常用方法屬性 ( ① tag 屬性 | ② removeFromSuperView 方法 | ③ addSubView 方法 | ④ viewWithTag 方法 | ⑤ frame 屬性 | ⑥ transform 屬性 )
      • ( 8 ) 效果展示
  • 三. 圖片瀏覽器
    • 1. 應(yīng)用創(chuàng)建 設(shè)置
      • ( 1 ) 創(chuàng)建 設(shè)置 應(yīng)用 ( ① 創(chuàng)建應(yīng)用 | ② 設(shè)置界面尺寸 )
    • 2. UI 控件 設(shè)置
      • ( 1 ) 設(shè)置 Main.storyboard ( 拖入相關(guān)控件 )
      • ( 2 ) 關(guān)聯(lián) Main.storyboard 與 ViewController.m ( ① 關(guān)聯(lián)控件變量 | ② 關(guān)聯(lián)方法 | ③ 設(shè)置相關(guān)的成員變量 )
    • 3. 相關(guān)知識(shí)點(diǎn)
      • ( 1 ) UILabel 設(shè)置 ( ① 換行設(shè)置 | ② 設(shè)置行高 | ③ 寬高控制 )
      • ( 2 ) UIButton 啟用 禁用 ( ① enabled 屬性 YES NO )
      • ( 3 ) NSArray 和 NSMutableDictionary 存儲(chǔ)數(shù)據(jù) ( ① NSArray 數(shù)組 | ② 字典 )
    • 4. 代碼邏輯 與 完整代碼
      • ( 1 ) 代碼邏輯 ( ① 邊界處理 | ② 按鈕處理 | ③ UILabel 文字切換 | ④ UIImageView 圖片切換 )
      • ( 2 ) 完整代碼
      • ( 3 ) 效果展示
  • 四. Storyboard 添加 配置 及 相關(guān)知識(shí)點(diǎn)
    • 1. 添加 新界面 ( ① 新建 Storyboard | ② 配置 Storyboard | ③ 新建ViewController 代碼 )
      • ( 1 ) 添加 Storyboard ( ① File -> New -> File | ② iOS -> User Interface -> Storyboard | ③ General -> Deployment -> Main Interface 配置 Storyboard )
      • ( 2 ) Storyboard 設(shè)置 ( ① 拖動(dòng)箭頭設(shè)置啟動(dòng)界面 | ② View Controller 的 Is Initial View Controller 勾選框 設(shè)置啟動(dòng)界面 | ③ 關(guān)聯(lián) ViewController 代碼 )
      • ( 3 ) 新建 ViewController.m 文件 ( ① File -> New -> File | ② iOS -> Source -> Cocoa Touch Class | ③ Storyboard 中 身份查看器 配置 Class )
    • 2. Storyboard 相關(guān)知識(shí)點(diǎn) ( ① 刪除 Storyboard | ② Storyboard 本質(zhì) )
      • ( 1 ) 刪除 Storyboard ( ① 刪除文件及引用 | ② 刪除引用 文件保留 )
      • ( 2 ) Storyboard 本質(zhì) ( XML 文本文件 )
    • 3. iOS 應(yīng)用啟動(dòng)步驟簡(jiǎn)介
      • ( 1 ) iOS 應(yīng)用啟動(dòng)步驟
  • 五. Bundle 簡(jiǎn)介
      • ( 1 ) Bundle 簡(jiǎn)介
      • ( 2 ) 圖片放置 位置 ( ① 放在 Assets.xcassets [推薦] | ② 放在根目錄[不推薦] )
      • ( 3 ) NSBundle 使用 ( ① 獲取 NSBundle 對(duì)象 | ② 獲取 Bundle 目錄下 某文件的 全路徑 )
  • 六. Property List 簡(jiǎn)介
      • ( 1 ) Property List 創(chuàng)建 ( ① New File | ② iOS -> Resource -> Property List | ③ 數(shù)據(jù)設(shè)置 | ④ 類型設(shè)置 )
      • ( 2 ) 獲取 Property List 數(shù)據(jù) ( ① 獲取 Bundle PList 路徑 | ② dictionaryWithContentsOfFile 初始化字典 | ③ 查看數(shù)據(jù) )
      • ( 3 ) Property List 多種類型 數(shù)據(jù) 設(shè)置 獲取 ( ① 設(shè)置 Root 類型為 NSArray | ② 設(shè)置 多類型 數(shù)據(jù) | ③ 獲取 PList 的 Bundle 路徑 | ④ 初始化 數(shù)組 | ⑤ 打斷點(diǎn)查看數(shù)據(jù) )
  • 七. 優(yōu)化 圖片 瀏覽器 ( ① 使用 PList | ② 懶加載 )
      • ( 1 ) 使用 PList 存儲(chǔ) 數(shù)據(jù) ( ① 創(chuàng)建 PList 文件 | ② 數(shù)據(jù)準(zhǔn)備 | ③ 獲取 Bundle 路徑 | ④ 獲取 PList 的 Bundle 路徑 | ⑤ PList -> 數(shù)組 )
      • ( 2 ) 懶加載 優(yōu)化 ( ① 在 get 方法中加載數(shù)據(jù) | ② 如果為 空 才 加載 )
  • 八. UIImageView 播放動(dòng)畫(huà) 及 內(nèi)存優(yōu)化
    • 1. 動(dòng)畫(huà) 播放
      • ( 1 ) UIImageView 動(dòng)畫(huà) 相關(guān)屬性 ( ① 圖片數(shù)組 | ② 動(dòng)畫(huà)時(shí)長(zhǎng) | ③ 重復(fù)次數(shù) )
      • ( 2 ) UIImageView 動(dòng)畫(huà) 相關(guān)方法 ( ① 開(kāi)始播放 | ② 停止播放 | ③ 是否正在播放 )
      • ( 3 ) UIImageView 動(dòng)畫(huà) 執(zhí)行流程 ( ① 準(zhǔn)備 UIImage 數(shù)組 | ② 設(shè)置動(dòng)畫(huà)參數(shù) UIImage數(shù)組 時(shí)長(zhǎng) 重復(fù)次數(shù) | ③ 啟動(dòng)動(dòng)畫(huà) )
    • 2. 圖片內(nèi)存 優(yōu)化
      • ( 1 ) UIImageView 動(dòng)畫(huà) 內(nèi)存 查看 ( ① Debug Navigator 查看內(nèi)存 | ② 查看 動(dòng)畫(huà)播放前后的內(nèi)存變化 | ③ 分析內(nèi)存不釋放的原因 )
      • ( 2 ) UIImage 內(nèi)存分析 ( ① 使用 UIImage imageNamed:圖片名稱 加載圖片 | ② 使用 UIImage imageWithContentsOfFile:Bundle路徑名 加載圖片 )
      • ( 3 ) 內(nèi)存優(yōu)化 的 動(dòng)畫(huà) 執(zhí)行 完整流程 ( ① 準(zhǔn)備 UIImage 數(shù)組 | ② 設(shè)置動(dòng)畫(huà)參數(shù) UIImage數(shù)組 時(shí)長(zhǎng) 重復(fù)次數(shù) | ③ 啟動(dòng)動(dòng)畫(huà) | ④ 異步設(shè)置圖片數(shù)組為 nil )
      • ( 4 ) NSBundle pathForResource 為 nil 解決方案 ( ① 拖入目錄 選擇 Create gropus | ② 查看 Xcode 項(xiàng)目 配置 -> Build phases 的 Bundle 配置 )
      • ( 5 ) 效果展示




博客相關(guān)資源 :

  • 1.CSDN下載地址 : https://download.csdn.net/download/han1202012/10956883



一. 代碼生成控件



1. 創(chuàng)建設(shè)置項(xiàng)目


( 1 ) 創(chuàng)建項(xiàng)目 ( ① 選擇 Create a new Xcode project | ② 創(chuàng)建 Single View Application 項(xiàng)目 | ③ 設(shè)置項(xiàng)目信息 | ④ 設(shè)置代碼路徑并創(chuàng)建 )


項(xiàng)目創(chuàng)建流程 : ① 選擇 Create a new Xcode project , ② 創(chuàng)建 Single View Application 項(xiàng)目 , ③ 設(shè)置項(xiàng)目信息 , ④ 設(shè)置代碼路徑并創(chuàng)建 ;

  • 1.選擇項(xiàng)目創(chuàng)建 : 在 Xcode 歡迎界面中 , 點(diǎn)擊 Create a new Xcode project 選項(xiàng) ;
  • 2.選擇項(xiàng)目類型 : 在 Choose a template for your new project 對(duì)話框中 , 選擇項(xiàng)目類型 iOS -> Application -> Single View Application 項(xiàng)目 ;
  • 3.設(shè)置項(xiàng)目名稱 : 輸入 項(xiàng)目 相關(guān)的 信息 , 主要是 項(xiàng)目名稱 ;
  • 4.選擇代碼存放路徑 : 選擇代碼存放路徑 , 點(diǎn)擊 Create 按鈕, 創(chuàng)建項(xiàng)目 ;


( 2 ) 界面設(shè)置 ( ① 選中 ViewController | ② 屬性查看器 -> Simulated Metrics -> Size | ③ 設(shè)置 iPhone 4.7-inch )

界面設(shè)置 : 需要自己手動(dòng)設(shè)定一個(gè) 屏幕尺寸 ;

  • 1.創(chuàng)建后的默認(rèn) UI 設(shè)計(jì)界面 : 創(chuàng)建項(xiàng)目完成后, Main.storyboard 中顯示的是一個(gè)正方形的 界面 , 需要將其設(shè)置為 一個(gè) 手機(jī)形狀的 UI 界面 ;
  • 2.設(shè)置成 4.7 寸屏幕大小 : ① 選中 ViewController 圖標(biāo) , ② 設(shè)置 右側(cè) 的 屬性查看器 -> Simulated Metrics -> Size , ③ 選擇 iPhone 4.7-inch 屏幕大小 ;

  • 3.iPhone 尺寸 : ① iPhone 5 , 5S , SE : 4-inch ( 對(duì)角線長(zhǎng)度 ) , ② iPhone 6 , 6S , 7 : 4.7-inch ( 對(duì)角線長(zhǎng)度 ) , ③ iPhone 6 Plus , 6s Plus , 7Plus : 5.5-inch ( 對(duì)角線長(zhǎng)度 ) ;



2. 設(shè)置按鈕及添加事件


( 1 ) 添加按鈕事件 ( Control + 左鍵 拖動(dòng)到 代碼中 生成按鈕方法 )

添加按鈕事件 :

  • 1.添加按鈕 : 向 Main.storyboard 中拖入按鈕控件 ;
  • 2.生成按鈕方法 :
    • ① 打開(kāi)輔助編輯器 : 同時(shí)顯示 Main.storyboard 和 ViewController.m 代碼 ;
    • ② 拖動(dòng)生成方法 : 按住 Control 鍵 , 左鍵點(diǎn)擊 Button 控件不放 , 然后拖動(dòng)到 ViewController.m 代碼空白處 ;
    • ③ 設(shè)置方法屬性 :
      • a . 在 Name 欄 設(shè)置 方法名稱 ;
      • b . 在 Event 欄 設(shè)置 方法觸發(fā)動(dòng)作 ;
      • c . Touch Up Inside 即 點(diǎn)擊方法 ;
      • d . 在 Arguments 欄 設(shè)置需要傳入的參數(shù) :
        • 1> 如果在方法中需要使用按鈕參數(shù) , 則選擇 Sender ,
        • 2> 如果需要 按鈕 和 事件 參數(shù) , 選擇 Sender and Event ,
        • 3> 如果不需要參數(shù) , 設(shè)置 None 即可 ;
    • ④ 生成方法 : 點(diǎn)擊 上述 對(duì)話框中的 Connect 按鈕 , 即可生成對(duì)應(yīng)方法 ;
  • 5.生成的代碼 :
- (IBAction)generateView { }

( 2 ) 修改按鈕文字 ( ① 雙擊控件 | ② 修改 Tittle 屬性 )


修改按鈕文字 :

  • 1.方法1 : 點(diǎn)擊選中 UIButton 控件, 然后再右側(cè)的屬性查看器中的 Tittle 屬性中修改按鈕文字 ;
  • 2.方法2 : 在 Main.storyboard 中雙擊 UIButton 控件 , 修改 按鈕文字 ;
  • 3.修改后 :



3. 生成 UIView 控件 并 查看 View 層級(jí)


( 1 ) 代碼 生成 UIView 控件 ( ① 創(chuàng)建控件 | ② 設(shè)置 frame | ③ 設(shè)置顏色 | ④ 添加控件 )


代碼生成 UIView 控件 :

  • 1.創(chuàng)建 UIView 控件 : 使用 UIView 的 alloc init 方法 , 創(chuàng)建 UIView 控件 ;
//1. 創(chuàng)建 View 控件 , 使用 alloc init 方法UIView * newView = [[UIView alloc] init];
  • 2.修改 Frame 屬性 : 使用 CGRectMake 方法創(chuàng)建 CGRect 結(jié)構(gòu)體變量 , 并設(shè)置給 UIView 控件的 frame 屬性 ;
//2. 修改 控件 的 Frame 屬性newView.frame = CGRectMake(100, 100, 100, 100);
  • 3.設(shè)置顏色 : 設(shè)置 UIView 的 backgroundColor 屬性 , 傳遞一個(gè) UIColor 對(duì)象 ;
//3. 為 控件 設(shè)置一個(gè)顏色值newView.backgroundColor = [UIColor redColor];
  • 4.添加 UIView 控件 : 獲取當(dāng)前 ViewController 的 根 View 組件 , 然后將 生成的 UIView 控件添加到 該 根 View 控件中 ;
//4. 將 控件 添加到 View 中[self.view addSubview:newView];
  • 5.總體代碼 :
// // ViewController.m // 1.GenerateUIViewByCode // // Created by octopus on 19/2/3. // Copyright ? 2019年 han. All rights reserved. //#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. }- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated. }- (IBAction)generateView {//1. 創(chuàng)建 View 控件 , 使用 alloc init 方法UIView * newView = [[UIView alloc] init];//2. 修改 控件 的 Frame 屬性newView.frame = CGRectMake(100, 100, 100, 100);//3. 為 控件 設(shè)置一個(gè)顏色值newView.backgroundColor = [UIColor redColor];//4. 將 控件 添加到 View 中[self.view addSubview:newView];}@end

( 2 ) 運(yùn)行并查看效果 ( 查看 View 層次 )


運(yùn)行并查看效果 :

  • 1.運(yùn)行程序 : 點(diǎn)擊 Build and then run the current scheme 按鈕 , 運(yùn)行虛擬機(jī) ; 然后點(diǎn)擊 10 次 生成 10 個(gè) UIView 控件 ;

  • 2.查看 創(chuàng)建的 View 層次 : 注意 該 步驟 必須在虛擬機(jī)運(yùn)行之后才能操作 , 點(diǎn)擊下方的 Debug View Hierarchy 按鈕 , 即可查看 View 層次 ;

  • 3.查看 層次 : 鼠標(biāo) 按住 界面 , 左右拖動(dòng) , 即可看到生成的 10 個(gè) UIView 的層次 ;




4. 代碼生成按鈕 并 綁定事件


( 1 ) 代碼生成 按鈕 ( ① 創(chuàng)建按鈕控件 | ② 設(shè)置 frame | ③ 設(shè)置文字( 顏色 ) | ④ 設(shè)置背景( 前景 )圖片 | ⑤ 綁定事件 | ⑥ 添加控件 )


代碼生成 按鈕 :

  • 1.創(chuàng)建按鈕控件 : 創(chuàng)建 UIButton 控件時(shí) , 需要制定按鈕類型 , 這里創(chuàng)建 Custom 類型的控件 ;
//1. 創(chuàng)建 某種 Type 的 按鈕 , 這里創(chuàng)建 UIButtonTypeCustom 類型的 按鈕UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
  • 2.設(shè)置 frame 屬性 : 使用 CGRectMake 方法創(chuàng)建 CGRect 結(jié)構(gòu)體變量 , 并賦值給 按鈕的 frame 屬性 ;
//2. 設(shè)置 Frame 屬性button.frame = CGRectMake(100, 100, 100, 100);
  • 3.設(shè)置按鈕文字 : 調(diào)用 setTittle 方法 , 設(shè)置生成的按鈕的文字 ;
//3. 設(shè)置 文字 , 這里需要根據(jù)不同的狀態(tài)設(shè)置顯示的文字 , 這里只設(shè)置 UIControlStateNormal 狀態(tài)的文字[button setTitle:@"生成按鈕" forState:UIControlStateNormal];
  • 4.設(shè)置文字顏色 : 調(diào)用 setTittleColor 方法 , 設(shè)置按鈕文字的顏色 ;
//4. 設(shè)置 文字顏色 , 這里設(shè)置普通狀態(tài)時(shí)的 文字 顏色[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
  • 5.設(shè)置背景圖片 :
    • ① 添加圖片資源 : 選中 Assets.xcassets , 從 Finder 中拖動(dòng)圖片資源 到 其中 ;
    • ② 設(shè)置背景圖片 : 調(diào)用 setBackgroundImage 方法 , 設(shè)置背景圖片 ;
//5. 設(shè)置 背景圖片[button setBackgroundImage:[UIImage imageNamed:@"button_bg"] forState:UIControlStateNormal];
  • 6.綁定事件 : 創(chuàng)建一個(gè)方法 , 然后調(diào)用 UIButton 的 addTarget 綁定該方法 ;
//添加按鈕事件 //5. 設(shè)置 背景圖片[button setBackgroundImage:[UIImage imageNamed:@"button_bg"] forState:UIControlStateNormal];// 創(chuàng)建的按鈕事件 //為 生成的 按鈕 綁定 點(diǎn)擊事件 - (void) bindMethod{NSLog(@"綁定事件觸發(fā)"); }
  • 7.添加控件 : 獲取父控件 self.view , 調(diào)用父控件的 addView 方法 添加控件 ;
//7. 將 UIButton 添加到 根 View 中[self.view addSubview:button];
  • 8.完整代碼示例 :
// // ViewController.m // 1.GenerateUIViewByCode // // Created by octopus on 19/2/3. // Copyright ? 2019年 han. All rights reserved. //#import "ViewController.h"@interface ViewController ()@end@implementation ViewController//該方法在 UIViewController 創(chuàng)建完成 , 并開(kāi)始加載到內(nèi)存中時(shí) , 在這個(gè)時(shí)刻執(zhí)行該 viewDidLoad 方法 //一般情況下 是 在該方法中 執(zhí)行 初始化數(shù)據(jù) , 創(chuàng)建控件 等操作 ; - (void)viewDidLoad {[super viewDidLoad];//1. 創(chuàng)建 某種 Type 的 按鈕 , 這里創(chuàng)建 UIButtonTypeCustom 類型的 按鈕UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];//2. 設(shè)置 Frame 屬性button.frame = CGRectMake(100, 100, 100, 100);//3. 設(shè)置 文字 , 這里需要根據(jù)不同的狀態(tài)設(shè)置顯示的文字 , 這里只設(shè)置 UIControlStateNormal 狀態(tài)的文字[button setTitle:@"生成按鈕" forState:UIControlStateNormal];//4. 設(shè)置 文字顏色 , 這里設(shè)置普通狀態(tài)時(shí)的 文字 顏色[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];//5. 設(shè)置 背景圖片[button setBackgroundImage:[UIImage imageNamed:@"button_bg"] forState:UIControlStateNormal];//6. 綁定 事件[button addTarget:self action:@selector(bindMethod) forControlEvents:UIControlEventTouchUpInside];//7. 將 UIButton 添加到 根 View 中[self.view addSubview:button]; }//為 生成的 按鈕 綁定 點(diǎn)擊事件 - (void) bindMethod{NSLog(@"綁定事件觸發(fā)"); }- (IBAction)generateView {//1. 創(chuàng)建 View 控件 , 使用 alloc init 方法UIView * newView = [[UIView alloc] init];//2. 修改 控件 的 Frame 屬性newView.frame = CGRectMake(100, 100, 100, 100);//3. 為 控件 設(shè)置一個(gè)顏色值newView.backgroundColor = [UIColor redColor];//4. 將 控件 添加到 View 中[self.view addSubview:newView];}@end



二. UIView 屬性 和 子控件操作



( 1 ) 創(chuàng)建 設(shè)置 應(yīng)用 ( ① 創(chuàng)建應(yīng)用 | ② 設(shè)置界面尺寸 )


創(chuàng)建 設(shè)置 應(yīng)用 :

  • 1.創(chuàng)建應(yīng)用 : ① 點(diǎn)擊 Create a new Xcode project 應(yīng)用 ; ② 創(chuàng)建 Single View Application 項(xiàng)目 ; ③ 設(shè)置 項(xiàng)目名稱 , 組織標(biāo)識(shí) 等信息 ; ④ 設(shè)置代碼路徑 ; 參考 一 . 1 . ( 1 ) 章節(jié)內(nèi)容 ;
  • 2.設(shè)置界面尺寸 : ① Main.storyboard 界面中 選中 ViewController ; ② 在 屬性查看器中設(shè)置 Size 屬性為 iPhone 4.7-inch ; ③ 在 文件查看器 中取消 Use Auto Layout 選項(xiàng) ;


( 2 ) 設(shè)置 Main.storyboard UI 界面 ( ① 背景 )


設(shè)置 Main.storyboard 界面 :

  • 1.設(shè)置背景顏色 : 選中 ViewController 下的 根 View 控件 , 在 屬性查看其中 設(shè)置 Background 屬性 , 設(shè)置一個(gè)顏色 ;
  • 2.向界面中添加一個(gè) View 控件 : 添加 View 控件 當(dāng)做容器 , 設(shè)置尺寸 300 x 300 , 居中顯示 , 之后將生成的 UIView 控件放在該 容器 中 ;
  • 3.添加按鈕 : 添加兩個(gè)按鈕 , 兩個(gè)按鈕的功能分別是 生成 UIView 控件 和 清空 UIView 控件 ;


( 3 ) 在 ViewController.m 關(guān)聯(lián) 控件變量 ( ① 按住 Control 拖拽 控件 到 @interface 代碼塊中 | ② Connect 對(duì)話框 設(shè)置 名稱 類型 )


關(guān)聯(lián) ViewController.m 變量 :

  • 1.拖線關(guān)聯(lián) : 按住 Control 鍵 不放 , 然后拖線到 ViewController.m 中的 @interface 代碼塊中 , 之后會(huì)彈出 Connect 對(duì)話框 ;

  • 2.設(shè)置變量信息 : 在 Connect 對(duì)話框中 設(shè)置 名稱 和 類型 , 然后點(diǎn)擊 Connect 按鈕 , 然后生成代碼 ;

  • 3.查看生成的代碼 : 點(diǎn)擊 Connect 按鈕后 , 會(huì)自動(dòng)根據(jù) 類型 和 變量名 生成 對(duì)應(yīng)的 代碼 ;



( 4 ) 生成 子組件 代碼 ( ① 生成子組件 | ② 設(shè)置子組件屬性 | ③ 設(shè)置子組件 frame 屬性 [ 隨機(jī)位置生成 ] | ④ 添加子組件到父容器中 )


生成子組件代碼 :

  • 1.創(chuàng)建子組件 : 調(diào)用 UILabel 的 alloc init 方法 , 生成子組件 ;
//1. 創(chuàng)建 UILabel 類型子組件UILabel * label = [[UILabel alloc] init];
  • 2.設(shè)置子組件 : 設(shè)置子組件信息 , 為 UILabel 設(shè)置文字 ;
//2. 設(shè)置 子組件 信息label.text = @"生成的子組件";
  • 3.設(shè)置 frame 屬性 : 設(shè)置隨機(jī)的位置 , 使用 arc4random_uniform 函數(shù)生成隨機(jī)數(shù) , x 坐標(biāo) 和 y 坐標(biāo)要使用不同的 隨機(jī)值 , 之后設(shè)置一個(gè) 寬高 即可 ;
//3. 設(shè)置 frame 屬性 , 主要是設(shè)置 位置 和 大小 , 這里針對(duì)位置 設(shè)置一個(gè)隨機(jī)位置// 隨機(jī)數(shù)使用 arc4random_uniform 是用于生成隨機(jī)數(shù)的函數(shù)label.frame = CGRectMake(arc4random_uniform(200), arc4random_uniform(280), 150, 20);
  • 4.添加到父容器 : 將代碼添加到 父容器 中 ;
//4. 添加到 Container 中[self.Container addSubview:label];
  • 5.整體代碼 :
// 添加 子組件 // ① 添加組件 : 調(diào)用 父容器組件 的 addSubview 方法添加子組件 - (IBAction)generateView:(UIButton *)sender {//1. 創(chuàng)建 UILabel 類型子組件UILabel * label = [[UILabel alloc] init];//2. 設(shè)置 子組件 信息label.text = @"生成的子組件";//3. 設(shè)置 frame 屬性 , 主要是設(shè)置 位置 和 大小 , 這里針對(duì)位置 設(shè)置一個(gè)隨機(jī)位置// 隨機(jī)數(shù)使用 arc4random_uniform 是用于生成隨機(jī)數(shù)的函數(shù)label.frame = CGRectMake(arc4random_uniform(200), arc4random_uniform(280), 150, 20);//4. 添加到 Container 中[self.Container addSubview:label]; }

( 5 ) 刪除 子組件 代碼 ( ① 獲取子組件數(shù)組 | ② 使用 for in 循環(huán)刪除子組件 | ③ isKindOfClass 判定組件類型 )


刪除子組件代碼 :

  • 1.獲取子組件數(shù)組 : 訪問(wèn) 父容器的 subViews 屬性 即可獲取 父容器所有的子組件, 該屬性在 UIView 中定義 ;
self.Container.subviews
  • 2.刪除子組件 : 使用 removeFromSuperView 方法 來(lái) 刪除控件 ;
[view removeFromSuperview];
  • 3.控件類型準(zhǔn)備 : 父容器中添加 UIButton 組件 , 用于區(qū)分 UILabel 和 UIButton , 這里只刪除 UILabel 控件 ;
  • 4.判定組件類型 : 使用 isKindOfClass 判斷 對(duì)象 類型 ;
[view isKindOfClass:[UIButton class]]
  • 5.刪除所有 UILabel 控件 : 使用 for in 循環(huán) 刪除所有的 UILabel 控件 ;
//1. 獲取所有的子組件數(shù)組 , 直接遍歷刪除每個(gè)子組件即可 , 注意不刪除 UIButton 類型的組件for(UIView * view in self.Container.subviews){[view removeFromSuperview];}
  • 6.完整代碼 :
// 刪除 子組件 // ① 刪除方法 : 使用 removeFromSuperView 方法 來(lái) 刪除控件 // ② 獲取子組件 : 訪問(wèn) 父容器的 subViews 屬性 即可獲取 父容器所有的子組件, 該屬性在 UIView 中定義 // ③ 判定組件類型 : 通過(guò)調(diào)用 [uiView isKindOfClass:[UIButton class]] 方法可以判斷 uiView 是否是 UIButton 類型的組件 - (IBAction)clearView:(UIButton *)sender {//1. 獲取所有的子組件數(shù)組 , 直接遍歷刪除每個(gè)子組件即可 , 注意不刪除 UIButton 類型的組件for(UIView * view in self.Container.subviews){[view removeFromSuperview];}}

( 6 ) 刪除 指定 Tag 的控件 的 代碼 ( ① 調(diào)用父控件的 viewWithTag 方法 | ② )


刪除指定 Tag 的控件 :

  • 1.生成方法 : 按住 Control 拖線關(guān)聯(lián) , 在 Connect 對(duì)話框 設(shè)置方法參數(shù) , 生成方法 ;
  • 2.控件準(zhǔn)備 : 拖入 3 個(gè) Label 控件 , 分別設(shè)置 Tag 屬性 1 , 2, 3 ;
  • 3.獲取子控件方法 : 調(diào)用父控件的 viewWithTag 方法 獲取指定 Tag 屬性的子組件 , 如果 父控件 的 Tag 與 子控件的 Tag 相同 , 也能獲取到 , 并且優(yōu)先獲取父控件 ; 如果刪除父控件 , 那么其子控件也會(huì)被全部刪除 ;
  • 4.刪除控件 : 調(diào)用獲取的子控件的 removeFromSuperview 方法 , 刪除控件 ;
  • 5.代碼示例 :
- (IBAction)clearTag:(UIButton *)sender {//1. 獲取指定 Tag 的控件UILabel * label1 = [self.Container viewWithTag:1];UILabel * label2 = [self.Container viewWithTag:2];UILabel * label3 = [self.Container viewWithTag:3];//2. 刪除 子控件[label1 removeFromSuperview];[label2 removeFromSuperview];[label3 removeFromSuperview];}

( 7 ) UIView 常用方法屬性 ( ① tag 屬性 | ② removeFromSuperView 方法 | ③ addSubView 方法 | ④ viewWithTag 方法 | ⑤ frame 屬性 | ⑥ transform 屬性 )


UIView 常用方法屬性 :

  • 1.tag 屬性 : 用于標(biāo)示控件 , 不能改變控件外觀 ;
  • 2.removeFromSuperView 方法 : 將 子控件 從 父控件 刪除 ;
  • 3.addSubView 方法 : 向 父控件 中 添加子控件 , 還需要設(shè)置 Frame屬性 才能顯示 ;
  • 4.viewWithTag 方法 : 獲取 指定 Tag 屬性的 子控件 , 如果 父控件 也是這個(gè) Tag , 那么優(yōu)先獲取自己 ;
  • 5.frame 屬性 : 定義控件的位置 和 尺寸 ;
  • 6.transform 屬性 : 改變 位置 , 大小 , 旋轉(zhuǎn)角度 屬性 ; 有兩種使用方式 , 一種是 直接創(chuàng)建指定所有參數(shù) ; 第二種 可以在之前的基礎(chǔ)上進(jìn)行增量修改 ;


( 8 ) 效果展示


效果展示 :





三. 圖片瀏覽器



1. 應(yīng)用創(chuàng)建 設(shè)置


( 1 ) 創(chuàng)建 設(shè)置 應(yīng)用 ( ① 創(chuàng)建應(yīng)用 | ② 設(shè)置界面尺寸 )


創(chuàng)建 設(shè)置 應(yīng)用 :

  • 1.創(chuàng)建應(yīng)用 : ① 點(diǎn)擊 Create a new Xcode project 應(yīng)用 ; ② 創(chuàng)建 Single View Application 項(xiàng)目 ; ③ 設(shè)置 項(xiàng)目名稱 , 組織標(biāo)識(shí) 等信息 ; ④ 設(shè)置代碼路徑 ; 參考 一 . 1 . ( 1 ) 章節(jié)內(nèi)容 ;
  • 2.設(shè)置界面尺寸 : ① Main.storyboard 界面中 選中 ViewController ; ② 在 屬性查看器中設(shè)置 Size 屬性為 iPhone 4.7-inch ; ③ 在 文件查看器 中取消 Use Auto Layout 選項(xiàng) ;



2. UI 控件 設(shè)置


( 1 ) 設(shè)置 Main.storyboard ( 拖入相關(guān)控件 )


設(shè)置 Main.storyboard 界面 :

  • 1.準(zhǔn)備對(duì)應(yīng)控件 : 根據(jù)需求 拖入 對(duì)應(yīng)的控件 , 并設(shè)置相關(guān)屬性 ; 這里就不再詳細(xì)介紹 , 貼一張 設(shè)置好的控件 和 默認(rèn)文字 圖片 展示圖 ;
  • 2.準(zhǔn)備素材 : 拖入 顯示的圖片 和 箭頭 等 圖片資源 ;


( 2 ) 關(guān)聯(lián) Main.storyboard 與 ViewController.m ( ① 關(guān)聯(lián)控件變量 | ② 關(guān)聯(lián)方法 | ③ 設(shè)置相關(guān)的成員變量 )


關(guān)聯(lián) Main.storyboard 與 ViewController.m :

  • 1.關(guān)聯(lián)控件變量 : 按住 Control 鍵 , 將控件拖動(dòng)到 @interface 代碼區(qū)域 , 在彈出的對(duì)話框中輸入控件命令 和 選擇控件類型 , 即可生成控件關(guān)聯(lián)的變量 ;
// 顯示圖片的索引 @property (weak, nonatomic) IBOutlet UILabel *indexLabel;// 顯示圖片 @property (weak, nonatomic) IBOutlet UIImageView *Image;// 左箭頭按鈕 @property (weak, nonatomic) IBOutlet UIButton *lastButton;// 右箭頭按鈕 @property (weak, nonatomic) IBOutlet UIButton *nextButton;// 圖片介紹 @property (weak, nonatomic) IBOutlet UILabel *imageDescription;
  • 2.關(guān)聯(lián) UIButton 點(diǎn)擊方法 : 按住 Control 鍵 , 將控件拖動(dòng)到 @implementation 代碼區(qū)域 , 在彈出的對(duì)話框中 輸入方法名稱 , 選擇控件類型 , 選擇觸發(fā)操作 , 選擇傳入的參數(shù) 即可生成點(diǎn)擊方法 ;
// 上一張 圖片 - (IBAction)lastImage:(UIButton *)sender { }// 下一張 圖片 - (IBAction)nextImage:(UIButton *)sender { }


3. 相關(guān)知識(shí)點(diǎn)


( 1 ) UILabel 設(shè)置 ( ① 換行設(shè)置 | ② 設(shè)置行高 | ③ 寬高控制 )


UILabel 設(shè)置 :

  • 1.設(shè)置自動(dòng)換行 : 在 UILabel 中有 Lines 屬性 , 可以設(shè)置顯示 幾行 文字 , Lines 屬性 設(shè)置 0 就會(huì)自動(dòng)進(jìn)行換行 ;
  • 2.UILabel 行高設(shè)置 : 自動(dòng)換行的前提是 , UILabel 有對(duì)應(yīng)的多行的行高 , 如果 UILabel 高度很小只能顯示 1 行 , 那么 UILabel 自動(dòng)換行 也只是顯示 1 行 , 因此 如果需要自動(dòng)換行的話 , 需要給 UILabel 設(shè)置足夠的行高 ;

  • 3.寬高控制 : UILabel 的 寬度 和 高度 都需要把握好 , 寬度如果不夠 , 后面會(huì)出現(xiàn) … 的 省略情況 , 同理 高度不足 也會(huì)出現(xiàn)這種情況 ;


( 2 ) UIButton 啟用 禁用 ( ① enabled 屬性 YES NO )


UIButton 的啟用 禁用 :

  • 1.enabled 屬性 ( 可視化修改 ) : 在 UIButton 的 屬性查看器中 Control 模塊下 , Enabled 屬性用來(lái)設(shè)置 按鈕是否可用 , 如果 勾選 按鈕可用 , 反之 按鈕 會(huì)變灰 不可用 ;
  • 2.源碼中查看 enabled 屬性 : 默認(rèn)是 YES 可用 , 如果設(shè)置為 NO 不可用 ;
@property(nonatomic,getter=isEnabled) BOOL enabled; // default is YES. if NO, ignores touch events and subclasses may draw differently
  • 3.代碼修改 enabled 屬性 : 方法中 直接修改 sender.enabled 屬性值 為 YES 或 NO , 即可修改 UIButton 是否可用 ;


( 3 ) NSArray 和 NSMutableDictionary 存儲(chǔ)數(shù)據(jù) ( ① NSArray 數(shù)組 | ② 字典 )


NSArray 和 NSMutableDictionary 存儲(chǔ)數(shù)據(jù) :

  • 1.使用方法 : 定義一個(gè) NSArray 成員變量 , 其每個(gè)元素都是一個(gè) NSMutableDictionary 字典 , 字典中存放 兩個(gè) 鍵值對(duì) , 分別是 圖片名稱 和 圖片描述 ;
  • 2.定義 NSArray 成員變量 : 使用 @property 定義 , 注意
// 用于保存所有圖片數(shù)據(jù)的數(shù)組 , 每個(gè)數(shù)組元素存放字典數(shù)據(jù) @property (strong, nonatomic) NSArray * pics;
  • 3.初始化 NSArray 成員變量 : 先逐個(gè)創(chuàng)建對(duì)應(yīng)的 NSMutableDictionary 字典 , 然后將字典 當(dāng)做元素 放入 NSArray 數(shù)組中 , 數(shù)組中的每個(gè)元素都是一個(gè) 字典 ;
// 1. 初始化圖片名稱數(shù)組NSMutableDictionary * d1 = [NSMutableDictionary dictionary];d1[@"pic"]=@"1_Mustang";d1[@"des"]=@"Mustang(福特野馬)是美國(guó)福特汽車公司推出的2005款野馬汽車,最高時(shí)速232.2公里,設(shè)計(jì)源自2003 年汽車巡回展上的概念車,野馬的誕生標(biāo)志著美國(guó)僅存的大馬力轎車獲得了重生。";NSMutableDictionary * d2 = [NSMutableDictionary dictionary];d2[@"pic"]=@"2_Prado";d2[@"des"]=@"普拉多是一款進(jìn)口ORV,源于豐田享譽(yù)全球的LAND CRUISER車系,1996年豐田正式將LAND CRUISER FJ90命名為PRADO普拉多,即真正意義上的第一代普拉多。";NSMutableDictionary * d3 = [NSMutableDictionary dictionary];d3[@"pic"]=@"3_Camaro";d3[@"des"]=@"雪佛蘭 科邁羅(英文名:Chevrolet Camaro)設(shè)計(jì)于1960年,目前共發(fā)展了六代。1966年9月26日發(fā)布的1967款Camaro是以雪佛蘭Nova為原型而設(shè)計(jì)的。";NSMutableDictionary * d4 = [NSMutableDictionary dictionary];d4[@"pic"]=@"4_LandCru";d4[@"des"]=@"蘭德酷路澤【陸地巡洋艦】是豐田汽車出品的LAND CRUISER 200,是豐田公司生產(chǎn)的一款進(jìn)口ORV越野車(Off Road Vehicle) [1] ,它的外觀在繼承原有設(shè)計(jì)DNA的同時(shí)向具備新時(shí)代的“新鮮感·先進(jìn)性”風(fēng)格進(jìn)化。是四輪驅(qū)動(dòng),軸距2850毫米,四輪碟剎的硬派越野車。";NSMutableDictionary * d5 = [NSMutableDictionary dictionary];d5[@"pic"]=@"5_Mondeo";d5[@"des"]=@"福特蒙迪歐(Mondeo)是一款長(zhǎng)安福特旗艦車型,不僅搭載多項(xiàng)創(chuàng)新科技,并在至臻品質(zhì)、動(dòng)力系統(tǒng)以及安全性能等方面實(shí)現(xiàn)全面提升。";// 將字典放入數(shù)組中self.pics = @[d1, d2, d3, d4, d5];
  • 4.獲取 NSArray 中的元素 : 根據(jù)數(shù)組下標(biāo) [int] 獲取數(shù)組中的元素 ;
// ① 獲取對(duì)應(yīng)的數(shù)據(jù) 字典NSMutableDictionary * d = self.pics[self.index - 1];
  • 5.從 NSMutableDictionary 字典 中獲取對(duì)應(yīng)元素 : 獲取 NSMutableDictionary * d 字典中的 “pic” 鍵 對(duì)應(yīng)的值 d[@"pic"] , 獲取 字典 中 “des” 鍵 對(duì)應(yīng)的值 d[@"des"]



4. 代碼邏輯 與 完整代碼


( 1 ) 代碼邏輯 ( ① 邊界處理 | ② 按鈕處理 | ③ UILabel 文字切換 | ④ UIImageView 圖片切換 )


代碼邏輯 :

  • 1.索引邊界處理 : 索引范圍 1 ~ 5 , 不能 小于 1 或者 大于 5 , 這里需要進(jìn)行限制 ; 點(diǎn)擊 向左 切換時(shí) 索引自減 , 當(dāng) 小于等于 1 時(shí) , 索引值 仍為 1 ; 點(diǎn)擊向右切換時(shí) , 索引 自增 , 當(dāng) 大于等于 5 時(shí) , 索引值 仍為 5 ;
// 設(shè)置圖片索引 , 注意不能 小于 1 , 邊界控制self.index -- ;if(self.index <= 1){self.index = 1;}...// 設(shè)置圖片索引 , 注意不能 超過(guò) 5 , 邊界控制self.index ++ ;if(self.index >= self.pics.count){self.index = (int)self.pics.count;}
  • 2.按鈕處理 : UIButton 的 enabled 屬性 設(shè)置 YES NO 值 來(lái) 設(shè)置 可用 禁用 屬性 ; 顯示第一張圖片時(shí) , 左 按鈕 禁用 , 顯示 最后一張圖片時(shí) , 右 按鈕 禁用 ; 其它情況 左右按鈕 都可用 ;
// 1. 設(shè)置按鈕 禁用 啟用 , index 為 1 和 5 時(shí) 分別啟用 和 禁用 指定的按鈕 , 其它情況下可以使用兩個(gè)按鈕if(self.index == 1){self.lastButton.enabled = NO;self.nextButton.enabled = YES;}else if(self.index == self.pics.count){self.lastButton.enabled = YES;self.nextButton.enabled = NO;}else{self.lastButton.enabled = YES;self.nextButton.enabled = YES;}
  • 3.UILabel 文字切換 : 直接 修改 UILabel 的 text 屬性 ;
// ④ 設(shè)置 文字 描述self.imageDescription.text = d[@"des"];
  • 4.文字生成格式 : 使用 NSString 的 stringWithFormat 方法 , 設(shè)置一個(gè) 字符串格式 , 使用 通配符 進(jìn)行 數(shù)據(jù)替換 ; 注意 NSArray 的 count 的通配符是 %lu ;
// ② 設(shè)置提示 UILabel 文字 , 拼接字符串 , 1/5self.indexLabel.text = [NSString stringWithFormat:@"%d/%lu", self.index, self.pics.count];
  • 5.UIImageView 圖片切換 : 通過(guò) 調(diào)用 UIImage 的 imageNamed 方法 , 獲取 UIImage 對(duì)象 ;
// ③ 設(shè)置 圖片 顯示self.Image.image = [UIImage imageNamed:d[@"pic"]];

( 2 ) 完整代碼


完整代碼 :

// // ViewController.m // 3.ImageBrowser // // Created by octopus on 19/2/11. // Copyright ? 2019年 han. All rights reserved. //#import "ViewController.h"@interface ViewController ()// 顯示圖片的索引 @property (weak, nonatomic) IBOutlet UILabel *indexLabel;// 顯示圖片 @property (weak, nonatomic) IBOutlet UIImageView *Image;// 左箭頭按鈕 @property (weak, nonatomic) IBOutlet UIButton *lastButton;// 右箭頭按鈕 @property (weak, nonatomic) IBOutlet UIButton *nextButton;// 圖片介紹 @property (weak, nonatomic) IBOutlet UILabel *imageDescription;// 當(dāng)前圖片索引 @property (assign, nonatomic) int index;// 用于保存所有圖片數(shù)據(jù)的數(shù)組 , 每個(gè)數(shù)組元素存放字典數(shù)據(jù) @property (strong, nonatomic) NSArray * pics;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 1. 初始化圖片名稱數(shù)組NSMutableDictionary * d1 = [NSMutableDictionary dictionary];d1[@"pic"]=@"1_Mustang";d1[@"des"]=@"Mustang(福特野馬)是美國(guó)福特汽車公司推出的2005款野馬汽車,最高時(shí)速232.2公里,設(shè)計(jì)源自2003 年汽車巡回展上的概念車,野馬的誕生標(biāo)志著美國(guó)僅存的大馬力轎車獲得了重生。";NSMutableDictionary * d2 = [NSMutableDictionary dictionary];d2[@"pic"]=@"2_Prado";d2[@"des"]=@"普拉多是一款進(jìn)口ORV,源于豐田享譽(yù)全球的LAND CRUISER車系,1996年豐田正式將LAND CRUISER FJ90命名為PRADO普拉多,即真正意義上的第一代普拉多。";NSMutableDictionary * d3 = [NSMutableDictionary dictionary];d3[@"pic"]=@"3_Camaro";d3[@"des"]=@"雪佛蘭 科邁羅(英文名:Chevrolet Camaro)設(shè)計(jì)于1960年,目前共發(fā)展了六代。1966年9月26日發(fā)布的1967款Camaro是以雪佛蘭Nova為原型而設(shè)計(jì)的。";NSMutableDictionary * d4 = [NSMutableDictionary dictionary];d4[@"pic"]=@"4_LandCru";d4[@"des"]=@"蘭德酷路澤【陸地巡洋艦】是豐田汽車出品的LAND CRUISER 200,是豐田公司生產(chǎn)的一款進(jìn)口ORV越野車(Off Road Vehicle) [1] ,它的外觀在繼承原有設(shè)計(jì)DNA的同時(shí)向具備新時(shí)代的“新鮮感·先進(jìn)性”風(fēng)格進(jìn)化。是四輪驅(qū)動(dòng),軸距2850毫米,四輪碟剎的硬派越野車。";NSMutableDictionary * d5 = [NSMutableDictionary dictionary];d5[@"pic"]=@"5_Mondeo";d5[@"des"]=@"福特蒙迪歐(Mondeo)是一款長(zhǎng)安福特旗艦車型,不僅搭載多項(xiàng)創(chuàng)新科技,并在至臻品質(zhì)、動(dòng)力系統(tǒng)以及安全性能等方面實(shí)現(xiàn)全面提升。";// 將字典放入數(shù)組中self.pics = @[d1, d2, d3, d4, d5];// 2. 初始化索引 為 1 , 并且執(zhí)行 第一次 圖片 切換 操作 , 顯示對(duì)應(yīng)的 圖片 , 索引 , 及 描述self.index = 1;[self showImage];}// 顯示 上一張 圖片 - (IBAction)lastImage:(UIButton *)sender {// 設(shè)置圖片索引 , 注意不能 小于 1 , 邊界控制self.index -- ;if(self.index <= 1){self.index = 1;}[self showImage]; }// 顯示 下一張 圖片 - (IBAction)nextImage:(UIButton *)sender {// 設(shè)置圖片索引 , 注意不能 超過(guò) 5 , 邊界控制self.index ++ ;if(self.index >= self.pics.count){self.index = (int)self.pics.count;}[self showImage]; }// 根據(jù) 當(dāng)前的 索引值 顯示指定的圖片 , 以及控制 左右 切換按鈕是否可用 - (void) showImage {// 1. 設(shè)置按鈕 禁用 啟用 , index 為 1 和 5 時(shí) 分別啟用 和 禁用 指定的按鈕 , 其它情況下可以使用兩個(gè)按鈕if(self.index == 1){self.lastButton.enabled = NO;self.nextButton.enabled = YES;}else if(self.index == self.pics.count){self.lastButton.enabled = YES;self.nextButton.enabled = NO;}else{self.lastButton.enabled = YES;self.nextButton.enabled = YES;}// 2. 設(shè)置 UIImageView 和 UILabel 切換// ① 獲取對(duì)應(yīng)的數(shù)據(jù) 字典NSMutableDictionary * d = self.pics[self.index - 1];// ② 設(shè)置提示 UILabel 文字 , 拼接字符串 , 1/5self.indexLabel.text = [NSString stringWithFormat:@"%d/%lu", self.index, self.pics.count];// ③ 設(shè)置 圖片 顯示self.Image.image = [UIImage imageNamed:d[@"pic"]];// ④ 設(shè)置 文字 描述self.imageDescription.text = d[@"des"];}@end

( 3 ) 效果展示


效果展示 :





四. Storyboard 添加 配置 及 相關(guān)知識(shí)點(diǎn)



1. 添加 新界面 ( ① 新建 Storyboard | ② 配置 Storyboard | ③ 新建ViewController 代碼 )


( 1 ) 添加 Storyboard ( ① File -> New -> File | ② iOS -> User Interface -> Storyboard | ③ General -> Deployment -> Main Interface 配置 Storyboard )


Main.storyboard 添加流程 :

  • 1.新建 : 菜單欄 File -> New -> File 選項(xiàng) , 彈出 新建 對(duì)話框 ;
  • 2.選擇文件模板 : 在彈出的 對(duì)話框中 選擇 iOS -> User Interface -> Storyboard 文件 , 點(diǎn)擊 Next 按鈕 , 進(jìn)行下一步設(shè)置 ;
  • 3.選擇文件路徑 : 最好將文件放在 主代碼 路徑下 , 點(diǎn)擊 Create 進(jìn)行下一步 ;
  • 4.Xcode 設(shè)置 : 其 文件 創(chuàng)建在了 代碼目錄下 , Xcode 中的引用 放在了根目錄 , 此時(shí) 將其拖動(dòng)到 代碼路徑中即可 ;

    設(shè)置完畢后的情況 :
  • 5.設(shè)置啟動(dòng) UI 文件 : 選中 Xcode 項(xiàng)目 根路徑文件 , 在 General -> Deployment -> Main Interface 一欄 選擇 想要啟動(dòng)的 UI 文件 ;


( 2 ) Storyboard 設(shè)置 ( ① 拖動(dòng)箭頭設(shè)置啟動(dòng)界面 | ② View Controller 的 Is Initial View Controller 勾選框 設(shè)置啟動(dòng)界面 | ③ 關(guān)聯(lián) ViewController 代碼 )


Storyboard 設(shè)置 :

  • 1.設(shè)置多個(gè) View Controller : 在 Main.storyboard 中 , 可以直接將 View Controller 拖入其中 ; 注意 為 每個(gè) ViewController 設(shè)置 4.7inch 大小 ;
  • 2.設(shè)置 3 個(gè) View Controller : 拖入 三個(gè) ViewController , 并為其 根 View 設(shè)置 不同的背景顏色 ;
  • 3.拖動(dòng)箭頭 : 直接拖動(dòng) 向右的 箭頭 , 其指向就是第一個(gè) 啟動(dòng)的界面 ;
  • 4.屬性設(shè)置啟動(dòng)界面 : 選中 ViewController , 在屬性查看器中 設(shè)置 View Controller 模塊下的 Is Initial View Controller 選項(xiàng) ;
  • 5.關(guān)聯(lián) ViewController 代碼 : 在 Main.Storyboard 中 雖然添加了 2 個(gè) 界面 , 但是沒(méi)有與之對(duì)應(yīng)的 ViewController.m 的代碼 , 這里需要在 身份查看器 中 設(shè)置 Class 屬性 ;



( 3 ) 新建 ViewController.m 文件 ( ① File -> New -> File | ② iOS -> Source -> Cocoa Touch Class | ③ Storyboard 中 身份查看器 配置 Class )


新建 ViewController.m 文件 :

  • 1.新建文件 : 菜單欄 File -> New -> File 選項(xiàng) , 彈出 新建對(duì)話框 ;
  • 2.創(chuàng)建類型選擇 : 在彈出的 對(duì)話框中 選擇 iOS -> Source -> Cocoa Touch Class 文件 , 點(diǎn)擊 Next 按鈕 , 進(jìn)行下一步設(shè)置 ;
  • 3.設(shè)置類 : 選擇 父類 類型為 UIViewController , 類名不要與其它 文件 重名 , 點(diǎn)擊 Next 進(jìn)行下一步設(shè)置 ;
  • 4.設(shè)置文件路徑 : 在 彈出 的 對(duì)話框中 設(shè)置代碼的路徑 , 這里直接使用默認(rèn)值即可 ; 點(diǎn)擊 Create 按鈕 , 即可生成 對(duì)應(yīng)的 ViewController 代碼 文件 ;
  • 5.Storyboard 代碼對(duì)應(yīng)設(shè)置 : 點(diǎn)擊 Storyboard 中的 ViewController , 在 身份查看器 中配置 Class 選項(xiàng) , 直接輸入 剛才生成的 TestViewController 名稱即可完成對(duì)應(yīng)關(guān)系 ;



2. Storyboard 相關(guān)知識(shí)點(diǎn) ( ① 刪除 Storyboard | ② Storyboard 本質(zhì) )


( 1 ) 刪除 Storyboard ( ① 刪除文件及引用 | ② 刪除引用 文件保留 )


刪除 Storyboard : 選中 Storyboard 點(diǎn)擊 Delete 鍵 , 就會(huì)彈出如下對(duì)話框 , 提供了 三個(gè)選項(xiàng) ;

  • 1.Move to Trash : 刪除 Finder 中的 文件 , 及 Xcode 中的索引 , 該文件直接刪除到 Trash 廢紙簍 中 ;
  • 2.Remove Reference : 刪除 Xcode 中的 引用 , 但是 文件 還是 在 該項(xiàng)目 下 , 可以隨時(shí) 通過(guò) 拖動(dòng) 恢復(fù)該文件 ;
  • 3.Cancel : 取消刪除操作 ;


( 2 ) Storyboard 本質(zhì) ( XML 文本文件 )


Storyboard 本質(zhì) : 向 首界面 拖入 一個(gè) UILabel , 并查看 該文件 ;

  • 1.使用文本編輯器查看 : 使用 Subline 文本編輯器查看 Storyboard 界面 , 發(fā)現(xiàn) 其本質(zhì) 是一個(gè) 純文本 的 文件 ; 該方式 與 Android 的 布局文件相似 ;
  • 2.xml 文本 : 該 文本 本質(zhì) 是 一個(gè) xml 文件 ;
  • 3.Xcode 中使用文本打開(kāi) : 右鍵點(diǎn)擊 Storyboard 文件 , 選擇 Open As -> Source Code 即可 查看 源碼 ;
  • 4.查看 代碼 樣式 :
  • 5.UILabel 代碼 分析 : 其中 text 屬性 就是 顯示 文字 , rect frame 子標(biāo)簽 就是其 位置 和 寬高 ;
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Hello" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JUr-dt-qtd"> <rect key="frame" x="168" y="323" width="39" height="21"/> <fontDescription key="fontDescription" type="system" pointSize="17"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <nil key="highlightedColor"/> </label>


3. iOS 應(yīng)用啟動(dòng)步驟簡(jiǎn)介


( 1 ) iOS 應(yīng)用啟動(dòng)步驟


iOS 應(yīng)用啟動(dòng)步驟 :

  • 1.程序入口 main 函數(shù) : main () 函數(shù) 在 Xcode 中 代碼 路徑 下的 Supporting Files 目錄下 的 main.m 文件中 ;
  • 2.調(diào)用 UIApplicationMain 方法 : 調(diào)用 UIApplicationMain 方法 , 啟動(dòng)應(yīng)用 ;
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  • 3.查找 Storyboard : 查找 在 應(yīng)用設(shè)置中 的 Main Interface 設(shè)置的 Storyboard 文件 , 該文件是 應(yīng)用啟動(dòng) 加載 的 UI 界面 ;
  • 4.查找 啟動(dòng)界面 : 查找 在 Storyboard 中 箭頭指向 的 啟動(dòng) ViewController ;
  • 5.加載 UI 界面 : 讀取 Storyboard 文件 , 加載并分析 其 XML 標(biāo)簽 屬性 和 值 對(duì)應(yīng)的 控件 , 創(chuàng)建這些控件 并 添加到 ViewController 中 ;
  • 6.調(diào)用 viewDidLoad 方法 : 界面 加載 完畢后 , 調(diào)用 ViewController.m 中的 viewDidLoad 方法 ;
  • 7.界面 展示 : 將創(chuàng)建的 UI 界面 在手機(jī)屏幕上 展示 給用戶 ;




五. Bundle 簡(jiǎn)介



( 1 ) Bundle 簡(jiǎn)介


Bundle 簡(jiǎn)介 : 應(yīng)用程序名稱.app 是 Bundle , 是一個(gè) 目錄 ;

  • 1.Mac 中的 Bundle : 在 Mac 中的 Finder 中 , 點(diǎn)擊 應(yīng)用程序 目錄 , 其中是一個(gè)個(gè) “.app” 后綴 的 文件 , 這些文件 就是 Bundle , 可以右鍵點(diǎn)擊 選擇 顯示包內(nèi)容 , 查看其中的 目錄 內(nèi)容 ;
  • 2.顯示包內(nèi)容 : 右鍵點(diǎn)擊 app 后綴 文件 , 選擇 顯示包內(nèi)容 選項(xiàng) , 即可查看其內(nèi)容 , 其 Contents 下的 內(nèi)容 就是 Bundle ;

  • 3.iOS 中的 Bundle : 與 Mac 基本相同 , iOS 應(yīng)用程序 , 打包好以后 , 也是一個(gè) .app 后綴的 文件 , 也可以通過(guò) 右鍵 點(diǎn)擊 該文件 , 選擇 顯示包內(nèi)容 查看 Bundle ;
  • 4.Bundle 路徑 : 在應(yīng)用中 , 可以通過(guò) NSLog(NSHomeDirectory()); 打印出 沙盒路徑 , 在 該路徑 向后 退 兩層 目錄 , 可以看到 Bundle 目錄 , Bundle 文件都在該 目錄中 ;
//打印出的路徑示例 /Users/hanshuliang/Library/Developer/CoreSimulator/Devices/C7ECF957-38E2-4E3F-ADC1-1FC5D26B4C79/data/Containers/Data/Application/7128774A-7468-466B-9C44-962CF974F8CB

Bundle 路徑 :

  • 5.iOS 中的 .app 文件路徑 : 在 Bundle 目錄下 , Application 路徑 下 的 二級(jí) 文件 就是 iOS 中的 app 后綴文件 , 右鍵 可查看其 內(nèi)容 ;
  • 6.查看 Bundle 內(nèi)容 : 右鍵點(diǎn)擊 “5.NSBundleDemo.app” 文件 , 選擇 顯示包內(nèi)容 選項(xiàng) , 可以查看 Bundle 內(nèi)容 , 如下圖 ;
  • 7.創(chuàng)建文件 : 創(chuàng)建 1 個(gè) 新的 Storyboard 文件 , 然后 再次查看 Bundle , 即可看到 在 Bundle 中 出現(xiàn)了一個(gè) 新文件 ; 這個(gè) 文件 是 加密的 , 無(wú)法查看 ;



( 2 ) 圖片放置 位置 ( ① 放在 Assets.xcassets [推薦] | ② 放在根目錄[不推薦] )


圖片放置 位置 : 準(zhǔn)備兩張圖片 , 分別放在 代碼 根目錄 和 Assets.xcassets 中 ;

  • 1.放在 根目錄 : 在 Bundle 中 也可以 看到 該圖片 , 不安全 ;
  • 2.放在 Assets.xcassets 目錄中 : 放在 該 目錄下 , 打包后 放在 Assets.car 中 , 放在根目錄的圖片 直接顯示在 Bundle 中 ;


( 3 ) NSBundle 使用 ( ① 獲取 NSBundle 對(duì)象 | ② 獲取 Bundle 目錄下 某文件的 全路徑 )


NSBundle 使用 :

  • 1.NSBundle 類 作用 : 獲取了 NSBundle 類 , 就相當(dāng)于獲取了 Bundle 目錄中的內(nèi)容 ; 如 下圖 的內(nèi)容 ;
  • 2.獲取 NSBundle 對(duì)象 : 通過(guò) 調(diào)用 NSBundle 的 mainBundle 方法 , 獲取該對(duì)象 ;
// 2. 獲取當(dāng)前應(yīng)用程序的 BundleNSBundle *mainBundle = [NSBundle mainBundle];
  • 3.獲取 Bundle 下的 文件路徑 : 可以通過(guò) pathForResource 方法 獲取 某文件的 路徑 , ① 傳入 文件名 和 后綴 兩個(gè)參數(shù) , ② 或者 傳入 文件名.后綴 參數(shù) ;
// 3. 獲取 Bundle 中 某文件 的 全路徑NSString *path = [mainBundle pathForResource:@"5_ Mondeo" ofType:@"jpeg"];NSLog(path);// 4. 獲取 Bundle 中 某文件 的 全路徑 , 使用另外一種方式NSString *path1 = [mainBundle pathForResource:@"5_ Mondeo.jpeg" ofType:nil];NSLog(path1);
  • 4.輸出結(jié)果 :
2019-02-12 22:46:33.797 5.NSBundleDemo[3253:29735] /Users/hanshuliang/Library/Developer/CoreSimulator/Devices/C7ECF957-38E2-4E3F-ADC1-1FC5D26B4C79/data/Containers/Bundle/Application/C004925F-E20C-4122-A6E0-89D2D6B0CA7B/5.NSBundleDemo.app/5_ Mondeo.jpeg 2019-02-12 22:46:33.797 5.NSBundleDemo[3253:29735] /Users/hanshuliang/Library/Developer/CoreSimulator/Devices/C7ECF957-38E2-4E3F-ADC1-1FC5D26B4C79/data/Containers/Bundle/Application/C004925F-E20C-4122-A6E0-89D2D6B0CA7B/5.NSBundleDemo.app/5_ Mondeo.jpeg



六. Property List 簡(jiǎn)介



( 1 ) Property List 創(chuàng)建 ( ① New File | ② iOS -> Resource -> Property List | ③ 數(shù)據(jù)設(shè)置 | ④ 類型設(shè)置 )


PList 創(chuàng)建 :

  • 1.創(chuàng)建文件 : 右鍵 點(diǎn)擊 代碼目錄 , 選擇 New File 選項(xiàng) ;
  • 2.設(shè)置文件類型 : 選擇 iOS -> Resource -> Property List 文件 ;
  • 3.設(shè)置文件路徑 : 設(shè)置 文件 名稱 , 并 選擇 文件路徑 ;
  • 4.添加數(shù)據(jù) : 點(diǎn)擊 PList 中的 加號(hào) 按鈕 , 即可添加數(shù)據(jù) ;
  • 5.數(shù)據(jù)類型設(shè)置 : 默認(rèn) 的 根元素 是 Dictionary 字典 , 這里暫時(shí)只討論 字典 的 情況 ;


( 2 ) 獲取 Property List 數(shù)據(jù) ( ① 獲取 Bundle PList 路徑 | ② dictionaryWithContentsOfFile 初始化字典 | ③ 查看數(shù)據(jù) )


獲取 PList 數(shù)據(jù) :

  • 1.查看 Bundle 中 PList 文件 : 之前 創(chuàng)建 了一個(gè) PList 文件 , 這里進(jìn)入 Bundle 目錄中 查看 , 根據(jù)之前 打印的 Bundle 路徑 , 查看 其 文件內(nèi)容 :
  • 2.獲取 Bundle 目錄中 的 PList 文件 路徑 : 調(diào)用 NSBundle 對(duì)象的 pathForResource 方法 , 獲取 PList 在 Bundle 中的 全路徑 ;
// 5. 獲取 dictionary.plist 的 Bundle 路徑NSString *path2 = [mainBundle pathForResource:@"dictionary.plist" ofType:nil];NSLog(path2);
  • 3.根據(jù)文件路徑 初始化 字典 : 調(diào)用 NSDictionary 的 dictionaryWithContentsOfFile 方法 , 初始化字典 , 傳入的是 PList 路徑 ;
// 6. 根據(jù) PList 路徑 初始化 字典 , 前提是 這個(gè) PList 的類型是 字典類型的NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:path2];
  • 4.調(diào)試查看字典內(nèi)容 : 在 字典 初始化 位置 打斷點(diǎn) , 查看初始化的內(nèi)容 ;



( 3 ) Property List 多種類型 數(shù)據(jù) 設(shè)置 獲取 ( ① 設(shè)置 Root 類型為 NSArray | ② 設(shè)置 多類型 數(shù)據(jù) | ③ 獲取 PList 的 Bundle 路徑 | ④ 初始化 數(shù)組 | ⑤ 打斷點(diǎn)查看數(shù)據(jù) )


PList 多種類型數(shù)據(jù)設(shè)置 : 上面 講解 了 根元素 為 字典 的情況 , 這里討論 根元素 為 數(shù)組 的情況 , 其中 數(shù)組的 每個(gè)元素 都可以設(shè)置 不同的類型 ;

  • 1.設(shè)置根元素類型為數(shù)組 :
  • 2.設(shè)置多個(gè)類型的數(shù)據(jù) : 每個(gè) 數(shù)組 元素 可以設(shè)置 不同的 類型 , 這里設(shè)置 字典 , 數(shù)字 , 布爾 值 三個(gè) 數(shù)組元素 ;
  • 3.獲取 PList 的 Bundle 路徑 : 調(diào)用 NSBundle 對(duì)象的 pathForResource 方法 獲取 對(duì)應(yīng)文件的 Bundle 全路徑 ;
// 7. 獲取 array.plist 的 Bundle 路徑NSString *path3 = [mainBundle pathForResource:@"array.plist" ofType:nil];NSLog(path3);
  • 4.初始化 數(shù)組 : 調(diào)用 NSArray 的 arrayWithContentsOfFile 方法 初始化 數(shù)組 , 傳入 PList 的路徑 , 注意 這個(gè) PList 的 Root 類型 必須是 Array 類型 的 ;
// 8. 根據(jù) PList 路徑 初始化 數(shù)組 , 前提是 這個(gè) PList 的類型是 數(shù)組類型的NSArray *array = [NSArray arrayWithContentsOfFile:path3];
  • 5.打斷點(diǎn)查看 數(shù)組 內(nèi)容 :




七. 優(yōu)化 圖片 瀏覽器 ( ① 使用 PList | ② 懶加載 )



( 1 ) 使用 PList 存儲(chǔ) 數(shù)據(jù) ( ① 創(chuàng)建 PList 文件 | ② 數(shù)據(jù)準(zhǔn)備 | ③ 獲取 Bundle 路徑 | ④ 獲取 PList 的 Bundle 路徑 | ⑤ PList -> 數(shù)組 )


使用 PList 存儲(chǔ)數(shù)據(jù) :

  • 1.創(chuàng)建 PList 文件 : 創(chuàng)建 名稱為 car.plist 的文件 , 將其 Root 類型設(shè)置為 Array 類型 ;
  • 2.數(shù)據(jù)準(zhǔn)備 : 將 圖片名稱 和 描述 信息 存入 plist 文件中 ;
  • 3.獲取 Bundle 路徑 :
// 1. 獲取 BundleNSBundle *mainBundle = [NSBundle mainBundle];
  • 4.獲取 PList Bundle 路徑 :
// 2. 獲取 plist 文件路徑NSString *path = [mainBundle pathForResource:@"car.plist" ofType:nil];
  • 5.初始化數(shù)組 :
// 3. 初始化數(shù)組self.pics = [NSArray arrayWithContentsOfFile:path];

( 2 ) 懶加載 優(yōu)化 ( ① 在 get 方法中加載數(shù)據(jù) | ② 如果為 空 才 加載 )


懶加載優(yōu)化 :

  • 1.懶加載原則 : ① 用到 某 屬性的時(shí)候才去 加載 ; ② 沒(méi)有值 時(shí) 才 進(jìn)行初始化 ;
  • 2.點(diǎn)語(yǔ)法說(shuō)明 : 以 @property (strong, nonatomic) NSArray * pics; 為例 , self.pics 相當(dāng)于 get 方法 , 即調(diào)用了 -(NSArray *) pics;方法 ; set 方法調(diào)用的是 -(void)setPics:(NSArray*)pics; ; 其實(shí)際的 變量名稱 是 _pics ; 根據(jù) 用到 屬性時(shí) 才去加載 原則 , 這里將加載過(guò)程放在 get 方法中 ;
  • 3.讀取 plist 頻率 : 一般情況下 程序 運(yùn)行起來(lái) , plist 是不會(huì)改變的 , 因此 只需要加載一次即可 ; 根據(jù) 沒(méi)有值 的時(shí)候才去 初始化 原則 , 只有當(dāng)屬性為 空時(shí) , 才執(zhí)行初始化操作 ;
  • 4.代碼 :
//懶加載優(yōu)化 , 原則 1 : 只有使用 pics 屬性時(shí) 開(kāi)始優(yōu)化 , 因此 代碼 放在 get 方法中 - (NSArray *)pics {// 懶加載優(yōu)化 , 原則 2 : 只有 pics 屬性為 空時(shí) 才開(kāi)始從 list 中 初始化 數(shù)據(jù)if(_pics == nil){// 1. 獲取 BundleNSBundle *mainBundle = [NSBundle mainBundle];// 2. 獲取 plist 文件路徑NSString *path = [mainBundle pathForResource:@"car.plist" ofType:nil];// 3. 初始化數(shù)組 , 注意 此處要使用 生成的 變量名_pics = [NSArray arrayWithContentsOfFile:path];}return _pics; }



八. UIImageView 播放動(dòng)畫(huà) 及 內(nèi)存優(yōu)化



1. 動(dòng)畫(huà) 播放



( 1 ) UIImageView 動(dòng)畫(huà) 相關(guān)屬性 ( ① 圖片數(shù)組 | ② 動(dòng)畫(huà)時(shí)長(zhǎng) | ③ 重復(fù)次數(shù) )


UIImageView 動(dòng)畫(huà)相關(guān)屬性 :

  • 1.動(dòng)畫(huà)圖片數(shù)組 : 多個(gè) NSArray 數(shù)組 , 其中元素類型是 UIImage ;
@property (nullable, nonatomic, copy) NSArray<UIImage *> *animationImages; // The array must contain UIImages. Setting hides the single image. default is nil
  • 2.動(dòng)畫(huà)持續(xù)時(shí)間 : 單位 秒 ;
@property (nonatomic) NSTimeInterval animationDuration; // for one cycle of images. default is number of images * 1/30th of a second (i.e. 30 fps)
  • 3.動(dòng)畫(huà)重復(fù)次數(shù) : 無(wú)限循環(huán) 設(shè)置 0 ;
@property (nonatomic) NSInteger animationRepeatCount; // 0 means infinite (default is 0)

( 2 ) UIImageView 動(dòng)畫(huà) 相關(guān)方法 ( ① 開(kāi)始播放 | ② 停止播放 | ③ 是否正在播放 )


UIImageView 動(dòng)畫(huà)相關(guān)方法 :

  • 1.開(kāi)始播放 :
- (void)startAnimating;
  • 2.停止播放 :
- (void)stopAnimating;
  • 3.是否正在播放 :
- (BOOL)isAnimating;

( 3 ) UIImageView 動(dòng)畫(huà) 執(zhí)行流程 ( ① 準(zhǔn)備 UIImage 數(shù)組 | ② 設(shè)置動(dòng)畫(huà)參數(shù) UIImage數(shù)組 時(shí)長(zhǎng) 重復(fù)次數(shù) | ③ 啟動(dòng)動(dòng)畫(huà) )


UIImageView 動(dòng)畫(huà) 執(zhí)行流程 :

  • 1.首先判斷 動(dòng)畫(huà) 是否在執(zhí)行 : 動(dòng)畫(huà)執(zhí)行 操作 會(huì)覆蓋 上一次的 動(dòng)畫(huà) , 每次 調(diào)用 startAnimating 都會(huì) 重新開(kāi)始 執(zhí)行動(dòng)畫(huà) , 因此 當(dāng)動(dòng)畫(huà)正在 執(zhí)行時(shí) , 不要覆蓋 ; 使用 isAnimating 方法 先判斷 動(dòng)畫(huà)是否在習(xí)性 ;
// 1. 先判斷 動(dòng)畫(huà)是否在執(zhí)行 , 如果動(dòng)畫(huà)在執(zhí)行 , 直接退出方法if([self.imageView isAnimating]) return;
  • 2.準(zhǔn)備數(shù)據(jù) : 準(zhǔn)備 UIImage 數(shù)組 ;
// 2. 數(shù)據(jù)準(zhǔn)備 , 準(zhǔn)備 UIImage 數(shù)組NSArray *nameArray = @[@"1_Mustang", @"2_Prado", @"3_Camaro", @"4_LandCru", @"5_Mondeo"];NSMutableArray *imageArray = [NSMutableArray array];for(int i = 0; i < nameArray.count; i ++){//獲取 UIImage 對(duì)象 , 并放入數(shù)組[imageArray addObject:[UIImage imageNamed:nameArray[i]] ];}
  • 3.設(shè)置圖片 : 將準(zhǔn)備好的 UiImage 數(shù)組 設(shè)置 到 animationImages 屬性中 ;
// 3. 設(shè)置圖片self.imageView.animationImages = imageArray;
  • 4.設(shè)置動(dòng)畫(huà)參數(shù) : 設(shè)置動(dòng)畫(huà)的 時(shí)長(zhǎng) ( animationDuration 屬性 ) 和 重復(fù)次數(shù) ( animationRepeatCount 屬性 ) ;
// 4. 設(shè)置動(dòng)畫(huà)參數(shù) : 時(shí)長(zhǎng) , 循環(huán)次數(shù)self.imageView.animationDuration = 1;self.imageView.animationRepeatCount = 1;
  • 5.開(kāi)始執(zhí)行動(dòng)畫(huà) : 執(zhí)行 startAnimating 方法 , 開(kāi)始執(zhí)行動(dòng)畫(huà) ;
// 5. 開(kāi)始執(zhí)行動(dòng)畫(huà)[self.imageView startAnimating];
  • 6.完整代碼 :
//播放動(dòng)畫(huà)的 方法 - (IBAction)startAnimation:(UIButton *)sender {// 1. 先判斷 動(dòng)畫(huà)是否在執(zhí)行 , 如果動(dòng)畫(huà)在執(zhí)行 , 直接退出方法if([self.imageView isAnimating]) return;// 2. 數(shù)據(jù)準(zhǔn)備 , 準(zhǔn)備 UIImage 數(shù)組NSArray *nameArray = @[@"1_Mustang", @"2_Prado", @"3_Camaro", @"4_LandCru", @"5_Mondeo"];NSMutableArray *imageArray = [NSMutableArray array];for(int i = 0; i < nameArray.count; i ++){//獲取 UIImage 對(duì)象 , 并放入數(shù)組[imageArray addObject:[UIImage imageNamed:nameArray[i]] ];}// 3. 設(shè)置圖片self.imageView.animationImages = imageArray;// 4. 設(shè)置動(dòng)畫(huà)參數(shù) : 時(shí)長(zhǎng) , 循環(huán)次數(shù)self.imageView.animationDuration = 1;self.imageView.animationRepeatCount = 1;// 5. 開(kāi)始執(zhí)行動(dòng)畫(huà)[self.imageView startAnimating];}


2. 圖片內(nèi)存 優(yōu)化



( 1 ) UIImageView 動(dòng)畫(huà) 內(nèi)存 查看 ( ① Debug Navigator 查看內(nèi)存 | ② 查看 動(dòng)畫(huà)播放前后的內(nèi)存變化 | ③ 分析內(nèi)存不釋放的原因 )


UIImageView 內(nèi)存查看 :

  • 1.查看內(nèi)存方式 : 內(nèi)存 可以在 Debug Navigator 中 進(jìn)行查看 , 前提是 應(yīng)用 必須處于正在運(yùn)行的狀態(tài) ;

  • 2.運(yùn)行并查看內(nèi)存 : 播放之前 內(nèi)存 是 19.9M ;
  • 3.點(diǎn)擊播放動(dòng)畫(huà)查看內(nèi)存 : 點(diǎn)擊播放按鈕 , 及 播放 完畢之后 , 內(nèi)存一直保持在 36.9M ;
  • 4.分析原因 : 這是 由于 圖片 一直 駐留在內(nèi)存中 沒(méi)有釋放 , 使用 UIImage imageNamed 方法 加載的圖片 , 不會(huì)釋放 ;


( 2 ) UIImage 內(nèi)存分析 ( ① 使用 UIImage imageNamed:圖片名稱 加載圖片 | ② 使用 UIImage imageWithContentsOfFile:Bundle路徑名 加載圖片 )


UIImage 內(nèi)存分析 :

  • 1.使用 UIImage imageNamed:圖片名稱 加載圖片 : 使用該方式 加載 圖片 , 圖片會(huì)在 內(nèi)存中 駐留 , 只有需要長(zhǎng)期保持的 圖片 , 如 UI 界面的 經(jīng)常顯示 的 各種背景 圖標(biāo) 等 , 使用該方式加載 ;
UIImage *image = [UIImage imageNamed:@"1.png"];
  • 2.使用 UIImage imageWithContentsOfFile:Bundle路徑名 加載圖片 : 使用該方式加載圖片時(shí) , 如果圖片沒(méi)有被引用時(shí) , 圖片占用的內(nèi)存就會(huì)被釋放 ; 即 將圖片持有變量設(shè)置為 nil 即可 ;
//2.1獲取 BundleNSBundle *mainBundle = [NSBundle mainBundle];//2.2獲取 圖片對(duì)應(yīng)的 Bundle 路徑NSString *path = [mainBundle pathForResource:nameArray[i] ofType:@"jpeg"];//2.3根據(jù) Bundle 路徑 獲取 UIImageUIImage *image = [UIImage imageWithContentsOfFile:path];

( 3 ) 內(nèi)存優(yōu)化 的 動(dòng)畫(huà) 執(zhí)行 完整流程 ( ① 準(zhǔn)備 UIImage 數(shù)組 | ② 設(shè)置動(dòng)畫(huà)參數(shù) UIImage數(shù)組 時(shí)長(zhǎng) 重復(fù)次數(shù) | ③ 啟動(dòng)動(dòng)畫(huà) | ④ 異步設(shè)置圖片數(shù)組為 nil )


內(nèi)存優(yōu)化后的 動(dòng)畫(huà) 執(zhí)行流程 :

  • 1.首先判斷 動(dòng)畫(huà) 是否在執(zhí)行 : 動(dòng)畫(huà)執(zhí)行 操作 會(huì)覆蓋 上一次的 動(dòng)畫(huà) , 每次 調(diào)用 startAnimating 都會(huì) 重新開(kāi)始 執(zhí)行動(dòng)畫(huà) , 因此 當(dāng)動(dòng)畫(huà)正在 執(zhí)行時(shí) , 不要覆蓋 ; 使用 isAnimating 方法 先判斷 動(dòng)畫(huà)是否在習(xí)性 ;
// 1. 先判斷 動(dòng)畫(huà)是否在執(zhí)行 , 如果動(dòng)畫(huà)在執(zhí)行 , 直接退出方法if([self.imageView isAnimating]) return;
  • 2.準(zhǔn)備數(shù)據(jù) : 準(zhǔn)備 UIImage 數(shù)組 ; 這里需要從 Bundle 中獲取圖片 , 因此需要將圖片 放置在 Xcode 中的 Assets.xcassets 之外 ( Bundle 中無(wú)法獲取其中的資源路徑 ) , 拖入一個(gè)圖片文件夾 , 這里要注意 在 “Choose options for adding these files” 對(duì)話框中 選擇 Create groups 選項(xiàng) , 否則 就無(wú)法獲取到 Bundle 中的 文件路徑 ;
// 2. 數(shù)據(jù)準(zhǔn)備 , 準(zhǔn)備 UIImage 數(shù)組NSArray *nameArray = @[@"1_Mustang", @"2_Prado", @"3_Camaro", @"4_LandCru", @"5_Mondeo"];NSMutableArray *imageArray = [NSMutableArray array];for(int i = 0; i < nameArray.count; i ++){//2.1獲取 BundleNSBundle *mainBundle = [NSBundle mainBundle];//2.2獲取 圖片對(duì)應(yīng)的 Bundle 路徑NSString *path = [mainBundle pathForResource:nameArray[i] ofType:@"jpeg"];//2.3根據(jù) Bundle 路徑 獲取 UIImageUIImage *image = [UIImage imageWithContentsOfFile:path];//2.4獲取 UIImage 對(duì)象 , 并放入數(shù)組[imageArray addObject:image ];}
  • 3.設(shè)置圖片 : 將準(zhǔn)備好的 UiImage 數(shù)組 設(shè)置 到 animationImages 屬性中 ;
// 3. 設(shè)置圖片self.imageView.animationImages = imageArray;
  • 4.設(shè)置動(dòng)畫(huà)參數(shù) : 設(shè)置動(dòng)畫(huà)的 時(shí)長(zhǎng) ( animationDuration 屬性 ) 和 重復(fù)次數(shù) ( animationRepeatCount 屬性 ) ;
// 4. 設(shè)置動(dòng)畫(huà)參數(shù) : 時(shí)長(zhǎng) , 循環(huán)次數(shù)self.imageView.animationDuration = 1;self.imageView.animationRepeatCount = 1;
  • 5.開(kāi)始執(zhí)行動(dòng)畫(huà) : 執(zhí)行 startAnimating 方法 , 開(kāi)始執(zhí)行動(dòng)畫(huà) ;
// 5. 開(kāi)始執(zhí)行動(dòng)畫(huà)[self.imageView startAnimating];
  • 6.清除動(dòng)畫(huà)圖片方法 : 直接將 UIImageView 的 animationImages 動(dòng)畫(huà)圖片數(shù)組 設(shè)置為 nil 即可 ;
//清除 UIImageView 的 動(dòng)畫(huà)圖片 - (void) clearImage {self.imageView.animationImages = nil; }
  • 7.異步執(zhí)行方法 : 需要 在動(dòng)畫(huà)開(kāi)始 1 秒之后執(zhí)行 , 代碼實(shí)現(xiàn)如下 :
// 6. 1秒后清除 動(dòng)畫(huà)圖片[self performSelector:@selector(clearImage) withObject:nil afterDelay:1];
  • 8.完整代碼 :
//播放動(dòng)畫(huà) 并釋放內(nèi)存 - (IBAction)startAnimationReleaseMemory:(UIButton *)sender {// 1. 先判斷 動(dòng)畫(huà)是否在執(zhí)行 , 如果動(dòng)畫(huà)在執(zhí)行 , 直接退出方法if([self.imageView isAnimating]) return;// 2. 數(shù)據(jù)準(zhǔn)備 , 準(zhǔn)備 UIImage 數(shù)組NSArray *nameArray = @[@"1_Mustang", @"2_Prado", @"3_Camaro", @"4_LandCru", @"5_Mondeo"];NSMutableArray *imageArray = [NSMutableArray array];for(int i = 0; i < nameArray.count; i ++){//2.1獲取 BundleNSBundle *mainBundle = [NSBundle mainBundle];//2.2獲取 圖片對(duì)應(yīng)的 Bundle 路徑NSString *path = [mainBundle pathForResource:nameArray[i] ofType:@"jpeg"];//2.3根據(jù) Bundle 路徑 獲取 UIImageUIImage *image = [UIImage imageWithContentsOfFile:path];//2.4獲取 UIImage 對(duì)象 , 并放入數(shù)組[imageArray addObject:image ];}// 3. 設(shè)置圖片self.imageView.animationImages = imageArray;// 4. 設(shè)置動(dòng)畫(huà)參數(shù) : 時(shí)長(zhǎng) , 循環(huán)次數(shù)self.imageView.animationDuration = 1;self.imageView.animationRepeatCount = 1;// 5. 開(kāi)始執(zhí)行動(dòng)畫(huà)[self.imageView startAnimating];// 6. 1秒后清除 動(dòng)畫(huà)圖片[self performSelector:@selector(clearImage) withObject:nil afterDelay:1];}//清除 UIImageView 的 動(dòng)畫(huà)圖片 - (void) clearImage {self.imageView.animationImages = nil; }

( 4 ) NSBundle pathForResource 為 nil 解決方案 ( ① 拖入目錄 選擇 Create gropus | ② 查看 Xcode 項(xiàng)目 配置 -> Build phases 的 Bundle 配置 )


NSBundle pathForResource 為 nil 解決方案 :

  • 1.拖入目錄方法 :將 pic 目錄 拖入 Xcode 中時(shí) , 需要選擇 Create groups 選項(xiàng) , 不能選擇 Create folder reference 選項(xiàng) ;
  • 2.確認(rèn)是否可以獲取到 : 在 Xcode 項(xiàng)目設(shè)置中 , 如果有 要獲取的 具體的 圖片 文件設(shè)置 , 那么可以獲取到 , 如果只有 圖片的 目錄 pic , 沒(méi)有具體的 圖片 配置 , 那么圖片就獲取不到 ;


( 5 ) 效果展示


效果展示 :


博客相關(guān)資源 :

  • 1.CSDN下載地址 : https://download.csdn.net/download/han1202012/10956883

總結(jié)

以上是生活随笔為你收集整理的【 iOS 应用开发 】 UIKit 控件 ( 代码生成控件 | UIView 属性方法 | Storyboard | Bundle | Property List | 动画 | 图片内存优化 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

久久综合九色综合欧美狠狠 | 午夜精品一区二区三区在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲欧洲日本无在线码 | 欧美亚洲国产一区二区三区 | 丰满人妻精品国产99aⅴ | 精品无码成人片一区二区98 | 在线视频网站www色 | 欧美精品国产综合久久 | 99久久久无码国产aaa精品 | 久久国产精品_国产精品 | 老头边吃奶边弄进去呻吟 | 无人区乱码一区二区三区 | 欧美freesex黑人又粗又大 | 图片区 小说区 区 亚洲五月 | 呦交小u女精品视频 | 国产精品久久福利网站 | 午夜精品一区二区三区的区别 | 青青草原综合久久大伊人精品 | 无码福利日韩神码福利片 | 任你躁国产自任一区二区三区 | 粉嫩少妇内射浓精videos | 精品无码国产自产拍在线观看蜜 | 精品无人区无码乱码毛片国产 | 成人影院yy111111在线观看 | 亚洲熟悉妇女xxx妇女av | 亚洲中文字幕成人无码 | 狠狠噜狠狠狠狠丁香五月 | 欧美精品免费观看二区 | 成人综合网亚洲伊人 | 东京一本一道一二三区 | 蜜桃视频韩日免费播放 | 久久zyz资源站无码中文动漫 | 久久精品一区二区三区四区 | 国产乱子伦视频在线播放 | 丰腴饱满的极品熟妇 | 精品国产青草久久久久福利 | 无套内谢的新婚少妇国语播放 | 精品久久8x国产免费观看 | 九月婷婷人人澡人人添人人爽 | 久久这里只有精品视频9 | 精品国偷自产在线视频 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲成a人片在线观看无码 | 亚洲综合在线一区二区三区 | 亚洲成a人片在线观看无码3d | 377p欧洲日本亚洲大胆 | 国产高清av在线播放 | 人人爽人人澡人人人妻 | 色诱久久久久综合网ywww | 国产精品久久精品三级 | 国产成人无码专区 | 亚洲熟悉妇女xxx妇女av | 日日橹狠狠爱欧美视频 | 久久综合九色综合97网 | 国产人妻大战黑人第1集 | 福利一区二区三区视频在线观看 | 中文字幕av日韩精品一区二区 | 波多野结衣一区二区三区av免费 | 亚洲呦女专区 | 人妻aⅴ无码一区二区三区 | 欧洲美熟女乱又伦 | 精品国产一区二区三区四区在线看 | 麻豆国产丝袜白领秘书在线观看 | 人人妻人人澡人人爽精品欧美 | 无人区乱码一区二区三区 | 亚洲s色大片在线观看 | 精品国产青草久久久久福利 | 精品国产国产综合精品 | 久久天天躁夜夜躁狠狠 | 日本xxxx色视频在线观看免费 | 最新版天堂资源中文官网 | 国产精品美女久久久网av | 国产人妻精品午夜福利免费 | 国产成人一区二区三区在线观看 | 天天爽夜夜爽夜夜爽 | 精品久久久久香蕉网 | 3d动漫精品啪啪一区二区中 | 免费看男女做好爽好硬视频 | 国产人妻大战黑人第1集 | 亚洲乱码国产乱码精品精 | www国产精品内射老师 | 久久五月精品中文字幕 | 日韩欧美中文字幕公布 | 十八禁真人啪啪免费网站 | 伊人色综合久久天天小片 | 日本一区二区更新不卡 | 国产高清不卡无码视频 | 中文字幕乱妇无码av在线 | 色诱久久久久综合网ywww | 成熟妇人a片免费看网站 | 中文字幕无码av激情不卡 | 国产亚洲tv在线观看 | 日产国产精品亚洲系列 | 亚洲精品一区二区三区婷婷月 | 日本又色又爽又黄的a片18禁 | 黑人玩弄人妻中文在线 | 国产亚洲精品久久久久久国模美 | 欧美xxxxx精品 | 亚洲中文字幕va福利 | 午夜精品久久久久久久 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国色天香社区在线视频 | 少妇被黑人到高潮喷出白浆 | 亚洲国产精品久久久久久 | 亚洲综合精品香蕉久久网 | 婷婷六月久久综合丁香 | 又大又紧又粉嫩18p少妇 | 在线欧美精品一区二区三区 | 久久99久久99精品中文字幕 | 国产一区二区三区影院 | 在线精品国产一区二区三区 | 欧美色就是色 | 国产精品手机免费 | 欧美性生交xxxxx久久久 | 亚洲国精产品一二二线 | 未满小14洗澡无码视频网站 | 国产亚洲精品久久久久久大师 | 国产高潮视频在线观看 | 成人无码精品1区2区3区免费看 | 人妻少妇被猛烈进入中文字幕 | 午夜男女很黄的视频 | 女人被男人爽到呻吟的视频 | 无码精品国产va在线观看dvd | 老太婆性杂交欧美肥老太 | 一个人免费观看的www视频 | 国产情侣作爱视频免费观看 | 国内精品九九久久久精品 | 中文精品无码中文字幕无码专区 | 久久久中文字幕日本无吗 | 亚洲爆乳精品无码一区二区三区 | 六月丁香婷婷色狠狠久久 | 1000部夫妻午夜免费 | 老熟女乱子伦 | 无码纯肉视频在线观看 | 亚洲国产欧美国产综合一区 | 国产97色在线 | 免 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲综合精品香蕉久久网 | 97久久国产亚洲精品超碰热 | 无码一区二区三区在线 | 国产精品无码一区二区桃花视频 | 国产香蕉尹人综合在线观看 | 亚洲一区二区三区无码久久 | 午夜福利一区二区三区在线观看 | 日日夜夜撸啊撸 | 牲欲强的熟妇农村老妇女视频 | 欧美人与禽zoz0性伦交 | 天天摸天天碰天天添 | 又紧又大又爽精品一区二区 | 国产精品-区区久久久狼 | 无人区乱码一区二区三区 | 无码国模国产在线观看 | 久久99国产综合精品 | www国产精品内射老师 | 久久精品无码一区二区三区 | а√资源新版在线天堂 | 日韩精品无码一本二本三本色 | 少妇无码一区二区二三区 | 国产精品人人妻人人爽 | 日韩人妻无码一区二区三区久久99 | 最近免费中文字幕中文高清百度 | 精品无码一区二区三区的天堂 | 九九久久精品国产免费看小说 | 亚洲中文无码av永久不收费 | 人人妻人人澡人人爽人人精品 | 精品无码av一区二区三区 | 少妇无码一区二区二三区 | 99麻豆久久久国产精品免费 | 国产精品内射视频免费 | 狠狠色噜噜狠狠狠7777奇米 | 黑森林福利视频导航 | 色噜噜亚洲男人的天堂 | 成 人 网 站国产免费观看 | 熟妇人妻无乱码中文字幕 | 国产精品久久久av久久久 | 久久精品99久久香蕉国产色戒 | 丰满少妇女裸体bbw | 131美女爱做视频 | 婷婷五月综合激情中文字幕 | 久久99热只有频精品8 | 精品国产aⅴ无码一区二区 | www国产亚洲精品久久网站 | 国产精品久久久久久亚洲影视内衣 | 成人无码视频免费播放 | 精品久久久中文字幕人妻 | 国产激情无码一区二区app | 日韩在线不卡免费视频一区 | 在线播放亚洲第一字幕 | 女高中生第一次破苞av | 久久午夜无码鲁丝片午夜精品 | 荫蒂被男人添的好舒服爽免费视频 | 午夜时刻免费入口 | 亚洲毛片av日韩av无码 | 亚洲日韩av一区二区三区四区 | 成年美女黄网站色大免费视频 | 久久综合激激的五月天 | 亚洲毛片av日韩av无码 | 亚洲色欲色欲天天天www | 131美女爱做视频 | 亚洲欧洲无卡二区视頻 | 精品熟女少妇av免费观看 | 国产乱人无码伦av在线a | 久久人人爽人人爽人人片ⅴ | 300部国产真实乱 | 亚洲精品久久久久avwww潮水 | 国产sm调教视频在线观看 | 人妻互换免费中文字幕 | 中文字幕无码人妻少妇免费 | 午夜精品久久久久久久 | 少妇性l交大片欧洲热妇乱xxx | 久久综合香蕉国产蜜臀av | 国产精品第一国产精品 | 亚洲无人区一区二区三区 | 无码av最新清无码专区吞精 | 无码国产激情在线观看 | 人人澡人摸人人添 | 人妻少妇精品无码专区动漫 | 大肉大捧一进一出视频出来呀 | 奇米影视7777久久精品 | 国产亚洲精品久久久ai换 | 偷窥日本少妇撒尿chinese | 亚洲精品无码国产 | 性色欲网站人妻丰满中文久久不卡 | 亚洲精品鲁一鲁一区二区三区 | 中文无码成人免费视频在线观看 | 精品日本一区二区三区在线观看 | 亚洲日韩中文字幕在线播放 | 亚洲中文字幕av在天堂 | 国产亚av手机在线观看 | 鲁一鲁av2019在线 | 久久综合给合久久狠狠狠97色 | 久久久久久亚洲精品a片成人 | 亚洲爆乳无码专区 | 国产午夜亚洲精品不卡下载 | 亚洲成av人影院在线观看 | 我要看www免费看插插视频 | 人人妻人人澡人人爽欧美一区 | 亚洲s色大片在线观看 | 88国产精品欧美一区二区三区 | 亚洲人亚洲人成电影网站色 | 国产精品理论片在线观看 | 亚洲精品久久久久久久久久久 | av无码久久久久不卡免费网站 | 四虎国产精品免费久久 | 日韩少妇内射免费播放 | 国产美女精品一区二区三区 | 国产av人人夜夜澡人人爽麻豆 | 亚洲 另类 在线 欧美 制服 | 国产精品亚洲а∨无码播放麻豆 | 欧美性生交活xxxxxdddd | 亚洲精品综合一区二区三区在线 | 国产成人久久精品流白浆 | √8天堂资源地址中文在线 | 国产熟妇高潮叫床视频播放 | 精品亚洲成av人在线观看 | 精品国产青草久久久久福利 | 最近的中文字幕在线看视频 | 国产精品毛多多水多 | 色偷偷人人澡人人爽人人模 | 国产精品久久久久久亚洲影视内衣 | 青青草原综合久久大伊人精品 | 丰满护士巨好爽好大乳 | 日本精品人妻无码免费大全 | 女人和拘做爰正片视频 | 国产口爆吞精在线视频 | 双乳奶水饱满少妇呻吟 | 国产成人综合美国十次 | 欧美肥老太牲交大战 | 中文字幕乱码人妻二区三区 | 国产精品鲁鲁鲁 | 国产精品成人av在线观看 | 久久精品国产一区二区三区肥胖 | 亚洲日韩av一区二区三区中文 | 国产成人无码av片在线观看不卡 | 国产成人无码专区 | 亚洲精品国产a久久久久久 | 亚洲日韩中文字幕在线播放 | 成人精品视频一区二区 | 中文字幕 人妻熟女 | 四虎国产精品免费久久 | 久久久婷婷五月亚洲97号色 | 国产精品亚洲五月天高清 | 无码任你躁久久久久久久 | 日韩av无码中文无码电影 | 俄罗斯老熟妇色xxxx | 亚洲国产精品久久人人爱 | 欧美刺激性大交 | 国产精品久久久久9999小说 | 露脸叫床粗话东北少妇 | 欧美亚洲日韩国产人成在线播放 | 精品国产一区二区三区四区在线看 | 大乳丰满人妻中文字幕日本 | 牛和人交xxxx欧美 | 天堂а√在线地址中文在线 | 国产精品亚洲lv粉色 | 天堂а√在线地址中文在线 | 国产办公室秘书无码精品99 | 亚洲综合色区中文字幕 | 国产三级久久久精品麻豆三级 | 中文字幕人妻无码一区二区三区 | 久久精品中文字幕一区 | 精品国产一区av天美传媒 | 无码av中文字幕免费放 | 亚洲国产精品无码一区二区三区 | 亚洲中文字幕在线无码一区二区 | 中文字幕无码日韩欧毛 | 国产亚洲美女精品久久久2020 | 激情内射日本一区二区三区 | 熟妇人妻中文av无码 | 久久久久久久久蜜桃 | 日本熟妇大屁股人妻 | 午夜精品久久久内射近拍高清 | 岛国片人妻三上悠亚 | 麻豆精品国产精华精华液好用吗 | 人妻与老人中文字幕 | 亚洲成av人片在线观看无码不卡 | 亚洲男人av香蕉爽爽爽爽 | 亚洲欧美日韩成人高清在线一区 | 扒开双腿疯狂进出爽爽爽视频 | 色婷婷av一区二区三区之红樱桃 | 国语自产偷拍精品视频偷 | 无码吃奶揉捏奶头高潮视频 | 亚洲精品一区二区三区四区五区 | 成人动漫在线观看 | 婷婷五月综合激情中文字幕 | 亚洲国产精品无码一区二区三区 | 亚洲熟熟妇xxxx | 国产免费观看黄av片 | 欧美丰满少妇xxxx性 | 国产三级久久久精品麻豆三级 | 中文字幕人妻丝袜二区 | 精品久久久久久亚洲精品 | 亚洲一区二区三区含羞草 | 天天拍夜夜添久久精品 | 日韩在线不卡免费视频一区 | 亚洲综合无码一区二区三区 | 国产免费无码一区二区视频 | 好男人www社区 | 中文无码精品a∨在线观看不卡 | 欧美人与禽zoz0性伦交 | 中文字幕无码免费久久9一区9 | 国产精品资源一区二区 | 1000部啪啪未满十八勿入下载 | 日韩精品无码一本二本三本色 | 亚洲国产精品一区二区美利坚 | 国产色在线 | 国产 | 亚洲一区二区三区四区 | 无码吃奶揉捏奶头高潮视频 | 久久99精品国产.久久久久 | 一区二区三区乱码在线 | 欧洲 | 97无码免费人妻超级碰碰夜夜 | 国产性生交xxxxx无码 | 国产莉萝无码av在线播放 | 国产绳艺sm调教室论坛 | 97资源共享在线视频 | 欧美亚洲国产一区二区三区 | yw尤物av无码国产在线观看 | 午夜福利试看120秒体验区 | 日本熟妇大屁股人妻 | 精品熟女少妇av免费观看 | 国产亚洲视频中文字幕97精品 | 成人无码精品1区2区3区免费看 | 精品久久久无码中文字幕 | 少妇无码av无码专区在线观看 | 中文字幕无码热在线视频 | 成人无码精品一区二区三区 | 色综合久久久久综合一本到桃花网 | 欧美35页视频在线观看 | 亚洲成a人片在线观看无码3d | 国产三级久久久精品麻豆三级 | 亚洲精品久久久久久一区二区 | 色欲综合久久中文字幕网 | 女人和拘做爰正片视频 | 麻豆果冻传媒2021精品传媒一区下载 | 国产人妻精品一区二区三区不卡 | 欧美35页视频在线观看 | 国产超级va在线观看视频 | 国内精品久久毛片一区二区 | 99久久亚洲精品无码毛片 | 中文字幕无线码免费人妻 | 无码人妻久久一区二区三区不卡 | 国产成人精品无码播放 | 300部国产真实乱 | 激情亚洲一区国产精品 | 成人免费视频在线观看 | 亚洲第一网站男人都懂 | 人妻无码αv中文字幕久久琪琪布 | 精品水蜜桃久久久久久久 | 亚洲国产精品一区二区第一页 | 色婷婷综合激情综在线播放 | 精品无码成人片一区二区98 | 色老头在线一区二区三区 | 久久99精品久久久久久动态图 | 亚洲熟女一区二区三区 | 亚洲中文字幕乱码av波多ji | 欧美日韩一区二区三区自拍 | 伊人久久大香线蕉av一区二区 | 在线成人www免费观看视频 | 宝宝好涨水快流出来免费视频 | 国产成人无码av在线影院 | 2019nv天堂香蕉在线观看 | 少妇性俱乐部纵欲狂欢电影 | 国产人妻精品一区二区三区不卡 | 国产精品久久久久久亚洲毛片 | 少妇无码av无码专区在线观看 | 奇米影视888欧美在线观看 | 亚洲成色www久久网站 | 国产精品成人av在线观看 | 大肉大捧一进一出视频出来呀 | 久久久久免费精品国产 | 一本大道伊人av久久综合 | 永久免费观看国产裸体美女 | 国产三级精品三级男人的天堂 | 国产激情无码一区二区app | 久久久婷婷五月亚洲97号色 | 老子影院午夜精品无码 | 内射欧美老妇wbb | 伊在人天堂亚洲香蕉精品区 | 黑人巨大精品欧美黑寡妇 | 国产精品无码成人午夜电影 | 国产成人精品久久亚洲高清不卡 | 波多野结衣av在线观看 | 亚洲中文字幕va福利 | 扒开双腿疯狂进出爽爽爽视频 | 日本熟妇人妻xxxxx人hd | 任你躁国产自任一区二区三区 | 亚洲成av人综合在线观看 | 亚洲另类伦春色综合小说 | 麻豆av传媒蜜桃天美传媒 | 九九久久精品国产免费看小说 | 亚洲男女内射在线播放 | 欧美日韩久久久精品a片 | 久久精品女人天堂av免费观看 | 99视频精品全部免费免费观看 | 玩弄人妻少妇500系列视频 | 无码人妻精品一区二区三区不卡 | 色妞www精品免费视频 | 55夜色66夜色国产精品视频 | 无码人妻出轨黑人中文字幕 | 国产午夜福利100集发布 | 精品乱子伦一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 性欧美videos高清精品 | 国产乡下妇女做爰 | 久久精品女人的天堂av | 极品嫩模高潮叫床 | 国产午夜精品一区二区三区嫩草 | 久久熟妇人妻午夜寂寞影院 | 日韩少妇内射免费播放 | 一本无码人妻在中文字幕免费 | 网友自拍区视频精品 | 欧美丰满熟妇xxxx性ppx人交 | 377p欧洲日本亚洲大胆 | 天堂亚洲2017在线观看 | 欧美亚洲国产一区二区三区 | 亚洲无人区一区二区三区 | 国产一区二区不卡老阿姨 | 亚洲一区二区三区四区 | 久久久精品欧美一区二区免费 | 亚洲国精产品一二二线 | 免费无码一区二区三区蜜桃大 | 日日摸天天摸爽爽狠狠97 | 亚洲第一网站男人都懂 | 中文字幕色婷婷在线视频 | 伊人久久大香线蕉av一区二区 | 300部国产真实乱 | 国精产品一区二区三区 | 精品人妻人人做人人爽 | 高潮毛片无遮挡高清免费视频 | 亚洲精品国产a久久久久久 | 丰满少妇人妻久久久久久 | 小鲜肉自慰网站xnxx | 日韩在线不卡免费视频一区 | 成人无码视频免费播放 | 曰本女人与公拘交酡免费视频 | 人人澡人摸人人添 | 丝袜人妻一区二区三区 | 国产成人av免费观看 | 成人无码视频在线观看网站 | 全球成人中文在线 | 成人免费视频在线观看 | 国产成人午夜福利在线播放 | 国产精品.xx视频.xxtv | 国产精品久久久一区二区三区 | 香港三级日本三级妇三级 | 久久久久人妻一区精品色欧美 | 亚洲 激情 小说 另类 欧美 | 少妇高潮喷潮久久久影院 | 亚洲国产欧美日韩精品一区二区三区 | 久久伊人色av天堂九九小黄鸭 | 国产综合久久久久鬼色 | 性色av无码免费一区二区三区 | 国产麻豆精品一区二区三区v视界 | 国产欧美熟妇另类久久久 | 国产一区二区三区精品视频 | 永久免费观看国产裸体美女 | 日本一本二本三区免费 | 亚洲日本一区二区三区在线 | 国产香蕉97碰碰久久人人 | 国产精品亚洲专区无码不卡 | 久久99精品久久久久久动态图 | 日韩欧美中文字幕在线三区 | 三级4级全黄60分钟 | 久久无码中文字幕免费影院蜜桃 | 欧美熟妇另类久久久久久不卡 | 精品夜夜澡人妻无码av蜜桃 | 久久久精品人妻久久影视 | 好男人社区资源 | 欧美精品一区二区精品久久 | 国产精品丝袜黑色高跟鞋 | 欧美日韩精品 | 国产成人无码一二三区视频 | 国产激情精品一区二区三区 | 国产成人无码av片在线观看不卡 | 少妇无码av无码专区在线观看 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产精品无码永久免费888 | 久久久久久a亚洲欧洲av冫 | 久久久国产一区二区三区 | 精品国产一区av天美传媒 | 一本色道久久综合狠狠躁 | 成人一在线视频日韩国产 | 国产亚洲美女精品久久久2020 | 日本在线高清不卡免费播放 | 天下第一社区视频www日本 | 一本色道婷婷久久欧美 | 永久免费观看美女裸体的网站 | 国产莉萝无码av在线播放 | 成人无码精品1区2区3区免费看 | 国产无套粉嫩白浆在线 | 97人妻精品一区二区三区 | 色综合久久久无码中文字幕 | 欧美怡红院免费全部视频 | 国内精品久久久久久中文字幕 | 亚欧洲精品在线视频免费观看 | 人人澡人人妻人人爽人人蜜桃 | 日韩视频 中文字幕 视频一区 | 亚洲色偷偷偷综合网 | 国产欧美精品一区二区三区 | 高潮毛片无遮挡高清免费 | 亚洲乱码日产精品bd | 国产乱子伦视频在线播放 | 欧美激情一区二区三区成人 | 午夜成人1000部免费视频 | 色综合久久88色综合天天 | 扒开双腿吃奶呻吟做受视频 | 国产精品无码成人午夜电影 | 丰满人妻翻云覆雨呻吟视频 | 99久久人妻精品免费二区 | 欧洲vodafone精品性 | 日本肉体xxxx裸交 | 久久精品人人做人人综合 | 午夜免费福利小电影 | 国产午夜精品一区二区三区嫩草 | 午夜嘿嘿嘿影院 | 98国产精品综合一区二区三区 | 少妇无码一区二区二三区 | 国产精品久久精品三级 | 人妻少妇精品无码专区二区 | 欧美肥老太牲交大战 | 欧美人与善在线com | 午夜无码区在线观看 | 欧美丰满老熟妇xxxxx性 | 亚洲熟妇自偷自拍另类 | 人人妻人人澡人人爽欧美精品 | 久久久精品456亚洲影院 | 波多野结衣一区二区三区av免费 | 成人无码视频在线观看网站 | 久久99精品久久久久婷婷 | 任你躁国产自任一区二区三区 | 少妇高潮喷潮久久久影院 | 在线播放免费人成毛片乱码 | 国产一区二区三区四区五区加勒比 | 欧洲欧美人成视频在线 | 99久久精品午夜一区二区 | 国产精品a成v人在线播放 | 成 人影片 免费观看 | 成人一区二区免费视频 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国产真人无遮挡作爱免费视频 | 久久久婷婷五月亚洲97号色 | 少妇被粗大的猛进出69影院 | 强伦人妻一区二区三区视频18 | 在线亚洲高清揄拍自拍一品区 | 女人和拘做爰正片视频 | 欧美老熟妇乱xxxxx | 国产精品成人av在线观看 | 国产又粗又硬又大爽黄老大爷视 | 亚洲精品一区二区三区大桥未久 | 国产成人久久精品流白浆 | 国产精品久久久久久亚洲毛片 | 中文无码成人免费视频在线观看 | 午夜精品一区二区三区的区别 | 精品偷拍一区二区三区在线看 | 国产精品第一区揄拍无码 | 九九热爱视频精品 | 免费观看又污又黄的网站 | 日本乱偷人妻中文字幕 | 麻花豆传媒剧国产免费mv在线 | 久久99精品久久久久婷婷 | 久久亚洲a片com人成 | 人人爽人人爽人人片av亚洲 | 亚洲中文无码av永久不收费 | 亚洲小说春色综合另类 | 天堂一区人妻无码 | 99精品国产综合久久久久五月天 | 国产舌乚八伦偷品w中 | av无码电影一区二区三区 | 亚洲一区二区三区在线观看网站 | 国内揄拍国内精品人妻 | 亚拍精品一区二区三区探花 | 成人片黄网站色大片免费观看 | 色婷婷综合激情综在线播放 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 蜜臀aⅴ国产精品久久久国产老师 | 色偷偷人人澡人人爽人人模 | 精品国产国产综合精品 | 在线观看免费人成视频 | 亚洲日韩一区二区 | 亚洲人成无码网www | 久久婷婷五月综合色国产香蕉 | 成人亚洲精品久久久久软件 | 亚洲热妇无码av在线播放 | 欧美国产日产一区二区 | 一区二区传媒有限公司 | 久久综合给久久狠狠97色 | 国产美女精品一区二区三区 | 99久久婷婷国产综合精品青草免费 | 国产后入清纯学生妹 | 性生交片免费无码看人 | 亚洲精品中文字幕久久久久 | 狠狠色噜噜狠狠狠7777奇米 | 国产午夜视频在线观看 | 99久久亚洲精品无码毛片 | 久久综合激激的五月天 | 亚洲区欧美区综合区自拍区 | 午夜理论片yy44880影院 | 欧美自拍另类欧美综合图片区 | 中文字幕无线码免费人妻 | 亚洲欧美日韩综合久久久 | 亚洲a无码综合a国产av中文 | 国产精品永久免费视频 | 成人动漫在线观看 | 亚洲综合精品香蕉久久网 | 乱码午夜-极国产极内射 | 人人妻人人澡人人爽人人精品 | 性生交大片免费看女人按摩摩 | 国产网红无码精品视频 | а√天堂www在线天堂小说 | 亚洲人交乣女bbw | 午夜福利不卡在线视频 | 欧美人与禽zoz0性伦交 | 久久精品国产99精品亚洲 | 四虎永久在线精品免费网址 | 国产成人精品一区二区在线小狼 | 国产精品久久久午夜夜伦鲁鲁 | 丰满人妻精品国产99aⅴ | 国产亚洲精品久久久久久大师 | 亚洲国产精品一区二区第一页 | 国产成人无码一二三区视频 | 亚洲色欲色欲天天天www | 亚洲国产精华液网站w | 女人被男人躁得好爽免费视频 | 成人片黄网站色大片免费观看 | 2020久久香蕉国产线看观看 | 内射老妇bbwx0c0ck | www成人国产高清内射 | 亚洲国产av精品一区二区蜜芽 | 妺妺窝人体色www在线小说 | 亚洲综合在线一区二区三区 | 成在人线av无码免观看麻豆 | 99久久99久久免费精品蜜桃 | 国产人妻大战黑人第1集 | 日韩人妻少妇一区二区三区 | 清纯唯美经典一区二区 | 亚洲国产精品成人久久蜜臀 | 欧美人与牲动交xxxx | 亚洲精品中文字幕久久久久 | 国产精品久久久久久无码 | 亚洲中文字幕久久无码 | 黄网在线观看免费网站 | 成人影院yy111111在线观看 | 国产九九九九九九九a片 | 九月婷婷人人澡人人添人人爽 | 嫩b人妻精品一区二区三区 | 天天躁日日躁狠狠躁免费麻豆 | 国产午夜精品一区二区三区嫩草 | 丰满少妇弄高潮了www | 亚洲精品午夜国产va久久成人 | 激情内射亚州一区二区三区爱妻 | 免费视频欧美无人区码 | 国产亚洲精品久久久久久久久动漫 | 欧美高清在线精品一区 | 无码av免费一区二区三区试看 | 小sao货水好多真紧h无码视频 | 亚洲精品鲁一鲁一区二区三区 | 欧美激情内射喷水高潮 | 亚洲欧美色中文字幕在线 | 在线播放亚洲第一字幕 | 国产熟妇另类久久久久 | 久久综合九色综合欧美狠狠 | 欧美黑人乱大交 | 亚洲男人av天堂午夜在 | 亚洲阿v天堂在线 | 男女猛烈xx00免费视频试看 | 少妇高潮喷潮久久久影院 | 国产一区二区三区精品视频 | 真人与拘做受免费视频一 | аⅴ资源天堂资源库在线 | 精品久久8x国产免费观看 | 超碰97人人做人人爱少妇 | 日韩亚洲欧美中文高清在线 | 图片小说视频一区二区 | 狠狠躁日日躁夜夜躁2020 | 亚洲欧洲无卡二区视頻 | 午夜嘿嘿嘿影院 | 国产成人综合色在线观看网站 | 欧美刺激性大交 | 熟女少妇人妻中文字幕 | 国产亲子乱弄免费视频 | 亚洲日韩精品欧美一区二区 | 久激情内射婷内射蜜桃人妖 | 欧美黑人巨大xxxxx | 精品国产一区二区三区av 性色 | 国产成人精品一区二区在线小狼 | 人人妻人人澡人人爽精品欧美 | 亚洲 激情 小说 另类 欧美 | 久久国产36精品色熟妇 | 四虎国产精品免费久久 | 十八禁真人啪啪免费网站 | 亚洲一区二区三区在线观看网站 | 在线视频网站www色 | 精品乱码久久久久久久 | 久久精品视频在线看15 | 青草青草久热国产精品 | 午夜理论片yy44880影院 | 性欧美疯狂xxxxbbbb | 精品国偷自产在线 | 成年美女黄网站色大免费全看 | a在线亚洲男人的天堂 | 国产真实乱对白精彩久久 | 丰满少妇女裸体bbw | 爆乳一区二区三区无码 | 51国偷自产一区二区三区 | 精品偷自拍另类在线观看 | 四虎4hu永久免费 | 日日摸夜夜摸狠狠摸婷婷 | 国产精品va在线播放 | 欧美国产日产一区二区 | 麻豆精品国产精华精华液好用吗 | 99精品无人区乱码1区2区3区 | 97se亚洲精品一区 | 女人被男人躁得好爽免费视频 | 国产精品内射视频免费 | 无码人妻精品一区二区三区下载 | 亚洲人成无码网www | 永久免费观看国产裸体美女 | 日本www一道久久久免费榴莲 | 日韩人妻无码一区二区三区久久99 | 国产成人精品三级麻豆 | 乱人伦人妻中文字幕无码久久网 | 国产电影无码午夜在线播放 | 中国女人内谢69xxxx | 蜜臀aⅴ国产精品久久久国产老师 | 国产午夜精品一区二区三区嫩草 | 97夜夜澡人人爽人人喊中国片 | 久久久无码中文字幕久... | 国产综合在线观看 | 中文无码成人免费视频在线观看 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品香蕉在线观看 | 久久精品国产大片免费观看 | 久久精品国产99久久6动漫 | 老熟妇仑乱视频一区二区 | 欧美人妻一区二区三区 | 国产又爽又猛又粗的视频a片 | 亚洲国产av美女网站 | 亚洲s码欧洲m码国产av | 亚洲精品久久久久久一区二区 | 天天做天天爱天天爽综合网 | 国产精品久久久一区二区三区 | 国产精品香蕉在线观看 | 高清不卡一区二区三区 | 国产精品亚洲综合色区韩国 | 久久综合色之久久综合 | 18无码粉嫩小泬无套在线观看 | 亚洲中文字幕在线无码一区二区 | 18黄暴禁片在线观看 | 人妻少妇精品无码专区动漫 | 久久 国产 尿 小便 嘘嘘 | 人人爽人人爽人人片av亚洲 | 国产特级毛片aaaaaa高潮流水 | 国产精品无码一区二区三区不卡 | 天天做天天爱天天爽综合网 | 久久五月精品中文字幕 | 国产绳艺sm调教室论坛 | 久久国产精品_国产精品 | 奇米影视7777久久精品人人爽 | 国产97人人超碰caoprom | 自拍偷自拍亚洲精品10p | 精品国产成人一区二区三区 | 日本一区二区三区免费高清 | 国产精品久久久久9999小说 | 久久久av男人的天堂 | 自拍偷自拍亚洲精品被多人伦好爽 | 成人免费无码大片a毛片 | 强开小婷嫩苞又嫩又紧视频 | 日欧一片内射va在线影院 | 噜噜噜亚洲色成人网站 | 久久久久亚洲精品男人的天堂 | 国产97人人超碰caoprom | 无套内谢老熟女 | 妺妺窝人体色www婷婷 | 久久久久99精品成人片 | 爆乳一区二区三区无码 | 中文字幕无码热在线视频 | 人人澡人人妻人人爽人人蜜桃 | 国产午夜无码精品免费看 | 欧美xxxx黑人又粗又长 | 一本久久伊人热热精品中文字幕 | 97夜夜澡人人爽人人喊中国片 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 男人的天堂2018无码 | a片免费视频在线观看 | 日韩av无码一区二区三区不卡 | 国产美女精品一区二区三区 | а√天堂www在线天堂小说 | 国产成人久久精品流白浆 | 一本大道伊人av久久综合 | 樱花草在线播放免费中文 | 亚洲国产精华液网站w | 亚洲日韩av一区二区三区四区 | 国内精品人妻无码久久久影院蜜桃 | 久久久久久a亚洲欧洲av冫 | 国产在线一区二区三区四区五区 | 国产熟女一区二区三区四区五区 | 欧美精品无码一区二区三区 | 国产精品内射视频免费 | 精品国产av色一区二区深夜久久 | 中文久久乱码一区二区 | 国产精品欧美成人 | 一本久久a久久精品亚洲 | 西西人体www44rt大胆高清 | 国产精品免费大片 | 国产精品第一区揄拍无码 | 久久99久久99精品中文字幕 | 久久国产精品偷任你爽任你 | 久久久久亚洲精品男人的天堂 | 日日摸天天摸爽爽狠狠97 | 欧美性猛交内射兽交老熟妇 | 国产精品亚洲专区无码不卡 | 国产精品无码一区二区三区不卡 | 亚洲精品中文字幕乱码 | 久久综合给久久狠狠97色 | 久久午夜夜伦鲁鲁片无码免费 | 国产精品高潮呻吟av久久 | 3d动漫精品啪啪一区二区中 | 熟女俱乐部五十路六十路av | 亚洲一区二区三区四区 | 国产成人精品视频ⅴa片软件竹菊 | 欧美人与牲动交xxxx | 亚洲国产日韩a在线播放 | 无码中文字幕色专区 | 国产一区二区三区精品视频 | 欧美日本免费一区二区三区 | 久激情内射婷内射蜜桃人妖 | 麻豆成人精品国产免费 | 国产精品亚洲一区二区三区喷水 | 亚洲精品一区国产 | 国产精品a成v人在线播放 | 99在线 | 亚洲 | 美女黄网站人色视频免费国产 | 免费视频欧美无人区码 | 色一情一乱一伦 | a国产一区二区免费入口 | 免费无码午夜福利片69 | 欧美性猛交xxxx富婆 | 丰满岳乱妇在线观看中字无码 | 亚洲春色在线视频 | 亚洲午夜无码久久 | 久久久国产一区二区三区 | 欧美人与物videos另类 | 国产口爆吞精在线视频 | 亚洲小说春色综合另类 | 午夜丰满少妇性开放视频 | 国产一区二区三区日韩精品 | 丰满少妇弄高潮了www | 国产口爆吞精在线视频 | 熟女少妇在线视频播放 | 人人妻人人藻人人爽欧美一区 | 99精品无人区乱码1区2区3区 | 九九久久精品国产免费看小说 | 午夜肉伦伦影院 | 熟妇人妻无乱码中文字幕 | 妺妺窝人体色www婷婷 | 久久精品无码一区二区三区 | 老司机亚洲精品影院无码 | 荫蒂添的好舒服视频囗交 | 精品人妻人人做人人爽 | 97夜夜澡人人双人人人喊 | 国产精品亚洲lv粉色 | 久久99热只有频精品8 | 中文字幕乱码中文乱码51精品 | 国产精品va在线观看无码 | 中文字幕乱码人妻无码久久 | 国内老熟妇对白xxxxhd | 美女极度色诱视频国产 | 国产人妻人伦精品1国产丝袜 | 又粗又大又硬又长又爽 | 色婷婷av一区二区三区之红樱桃 | 色妞www精品免费视频 | 欧美日韩人成综合在线播放 | 性欧美videos高清精品 | 麻豆国产人妻欲求不满谁演的 | 亚洲国产精品久久久天堂 | 奇米影视888欧美在线观看 | 国产两女互慰高潮视频在线观看 | 日韩精品无码免费一区二区三区 | 在线观看国产一区二区三区 | 日韩在线不卡免费视频一区 | 国产激情精品一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 精品乱码久久久久久久 | 99久久精品日本一区二区免费 | 亚洲人交乣女bbw | 日产精品高潮呻吟av久久 | 熟妇女人妻丰满少妇中文字幕 | 久久亚洲国产成人精品性色 | 久久99精品久久久久久 | 精品久久久中文字幕人妻 | 成熟妇人a片免费看网站 | 欧美 日韩 人妻 高清 中文 | 日日摸日日碰夜夜爽av | 国产精品久久久久无码av色戒 | 免费观看黄网站 | 国产人妻大战黑人第1集 | 亚洲中文无码av永久不收费 | 狠狠色噜噜狠狠狠7777奇米 | 免费观看又污又黄的网站 | v一区无码内射国产 | 婷婷五月综合缴情在线视频 | 久久精品国产一区二区三区肥胖 | 亚洲日韩一区二区 | 内射老妇bbwx0c0ck | 内射白嫩少妇超碰 | 成人三级无码视频在线观看 | 妺妺窝人体色www婷婷 | 亚洲色大成网站www | 樱花草在线播放免费中文 | 99久久亚洲精品无码毛片 | 亚洲中文字幕在线观看 | 国产精品国产自线拍免费软件 | 亚洲精品一区二区三区在线观看 | 性开放的女人aaa片 | 国产精品久久久久久久影院 | 午夜精品久久久久久久久 | 亚洲综合色区中文字幕 | 亚洲熟妇色xxxxx欧美老妇y | 国产欧美熟妇另类久久久 | 国内精品久久毛片一区二区 | 日韩欧美中文字幕公布 | 日本一卡二卡不卡视频查询 | 国内精品人妻无码久久久影院蜜桃 | 少妇被黑人到高潮喷出白浆 | 国产内射爽爽大片视频社区在线 | 国产激情一区二区三区 | 精品久久久无码中文字幕 | 欧美乱妇无乱码大黄a片 | 中文字幕无码视频专区 | 国产精品久久久久9999小说 | 成人精品视频一区二区三区尤物 | 欧美精品免费观看二区 | 未满小14洗澡无码视频网站 | 狠狠色色综合网站 | 国产疯狂伦交大片 | 精品人妻人人做人人爽夜夜爽 | 国产精品久久久久9999小说 | 久久久久久久女国产乱让韩 | 久久天天躁夜夜躁狠狠 | 亚洲 a v无 码免 费 成 人 a v | 人妻aⅴ无码一区二区三区 | 97人妻精品一区二区三区 | 夜夜高潮次次欢爽av女 | 精品国产av色一区二区深夜久久 | 亚洲日韩av一区二区三区四区 | 中文字幕精品av一区二区五区 | 最新国产麻豆aⅴ精品无码 | 国产激情综合五月久久 | 国产香蕉97碰碰久久人人 | 男女猛烈xx00免费视频试看 | 曰韩少妇内射免费播放 | 天天av天天av天天透 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产av一区二区精品久久凹凸 | 特级做a爰片毛片免费69 | 熟妇人妻激情偷爽文 | 国产免费久久久久久无码 | 亚洲成av人片在线观看无码不卡 | 国产黑色丝袜在线播放 | 爽爽影院免费观看 | 黑人巨大精品欧美黑寡妇 | 国产av一区二区三区最新精品 | 国产午夜视频在线观看 | 日韩精品乱码av一区二区 | 东京一本一道一二三区 | 99久久精品午夜一区二区 | 丁香花在线影院观看在线播放 | 欧美熟妇另类久久久久久多毛 | 国产午夜亚洲精品不卡下载 | 国产欧美亚洲精品a | 国产成人无码一二三区视频 | 97久久国产亚洲精品超碰热 | 亚洲成色www久久网站 | 久久伊人色av天堂九九小黄鸭 | 欧美自拍另类欧美综合图片区 | 国产成人午夜福利在线播放 | 国产色在线 | 国产 | 正在播放老肥熟妇露脸 | 亚洲精品欧美二区三区中文字幕 | 一本久道高清无码视频 | 无码国模国产在线观看 | 欧美日韩人成综合在线播放 | 熟妇女人妻丰满少妇中文字幕 | 天天躁日日躁狠狠躁免费麻豆 | 欧美人妻一区二区三区 | 国产极品视觉盛宴 | 人人妻在人人 | 亚洲の无码国产の无码影院 | 亚洲精品一区三区三区在线观看 | 成熟女人特级毛片www免费 | 中文精品无码中文字幕无码专区 | 成人无码精品一区二区三区 | 一区二区传媒有限公司 | 人人爽人人澡人人人妻 | 中文字幕av伊人av无码av | 精品国产成人一区二区三区 | 久久久精品欧美一区二区免费 | 中文字幕 人妻熟女 | 天堂а√在线中文在线 | 国产精品美女久久久久av爽李琼 | 亚洲s码欧洲m码国产av | 国产av一区二区三区最新精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 中文字幕av伊人av无码av | 精品国产福利一区二区 | 思思久久99热只有频精品66 | 日韩人妻系列无码专区 | 西西人体www44rt大胆高清 | 丰满人妻被黑人猛烈进入 | 国产精品久久久久久久影院 | 国产av无码专区亚洲awww | 99久久99久久免费精品蜜桃 | 午夜福利电影 | 中文字幕av伊人av无码av | 国产熟妇另类久久久久 | 国产美女精品一区二区三区 | 国产精品内射视频免费 | 99久久久无码国产精品免费 | 国产精品99爱免费视频 | 国产特级毛片aaaaaaa高清 | 内射巨臀欧美在线视频 | 亚洲日韩中文字幕在线播放 | 国产熟妇另类久久久久 | 亚洲欧洲日本综合aⅴ在线 | 欧美成人高清在线播放 | 性欧美牲交xxxxx视频 | 人人妻人人澡人人爽欧美一区九九 | 午夜成人1000部免费视频 | √8天堂资源地址中文在线 | 亚洲国产精品一区二区第一页 | 国产在线无码精品电影网 | 国产精品无码久久av | 中文字幕色婷婷在线视频 | 日韩精品久久久肉伦网站 | 中文字幕无码av波多野吉衣 | 国产亚洲视频中文字幕97精品 | 亚洲中文字幕在线无码一区二区 | 日韩欧美群交p片內射中文 | 亚洲の无码国产の无码步美 | 亚洲日韩精品欧美一区二区 | 亚洲va欧美va天堂v国产综合 | 一本一道久久综合久久 | 1000部夫妻午夜免费 | 国产精品香蕉在线观看 | 色综合久久久无码中文字幕 | 亚洲无人区午夜福利码高清完整版 | 荫蒂添的好舒服视频囗交 | 1000部啪啪未满十八勿入下载 | av香港经典三级级 在线 | 97精品国产97久久久久久免费 | 国产疯狂伦交大片 | 亚洲精品中文字幕乱码 | 成人无码视频免费播放 | 无套内谢的新婚少妇国语播放 | 1000部啪啪未满十八勿入下载 | 国产在线精品一区二区高清不卡 | 小泽玛莉亚一区二区视频在线 | 精品午夜福利在线观看 | 精品 日韩 国产 欧美 视频 | 国产超级va在线观看视频 | 67194成是人免费无码 | 漂亮人妻洗澡被公强 日日躁 | 国产精品亚洲综合色区韩国 | 夜精品a片一区二区三区无码白浆 | 色狠狠av一区二区三区 | 岛国片人妻三上悠亚 | 人妻熟女一区 | 国产成人无码av在线影院 | 青青久在线视频免费观看 | 性史性农村dvd毛片 | 久久精品国产一区二区三区肥胖 | 任你躁国产自任一区二区三区 | 国产乡下妇女做爰 | 欧美亚洲日韩国产人成在线播放 | 国产成人精品久久亚洲高清不卡 | 又色又爽又黄的美女裸体网站 | 99久久精品国产一区二区蜜芽 | 亚洲欧洲中文日韩av乱码 | 亚洲s色大片在线观看 | 三级4级全黄60分钟 | 国产精品久久久久久无码 | 最近免费中文字幕中文高清百度 | 强伦人妻一区二区三区视频18 | 欧美日本免费一区二区三区 | 亚洲欧美国产精品久久 | 国内综合精品午夜久久资源 | 国内老熟妇对白xxxxhd | 精品aⅴ一区二区三区 | 国模大胆一区二区三区 | 国产性生大片免费观看性 | 国产色精品久久人妻 | 精品国产国产综合精品 | 日韩精品无码免费一区二区三区 | 九月婷婷人人澡人人添人人爽 | 娇妻被黑人粗大高潮白浆 | 一个人看的www免费视频在线观看 | 精品熟女少妇av免费观看 | 中文字幕无码视频专区 | 日本高清一区免费中文视频 | 亚洲一区二区观看播放 | 乱人伦中文视频在线观看 | 欧美亚洲国产一区二区三区 | 午夜性刺激在线视频免费 | 久久久久免费看成人影片 | 欧美性色19p | 日本精品久久久久中文字幕 | 久久熟妇人妻午夜寂寞影院 | 欧美人妻一区二区三区 | a在线亚洲男人的天堂 | 鲁一鲁av2019在线 | 亚洲经典千人经典日产 | 日韩人妻无码一区二区三区久久99 | 伊在人天堂亚洲香蕉精品区 | 丰满肥臀大屁股熟妇激情视频 | 欧美熟妇另类久久久久久不卡 | 久久久久久国产精品无码下载 | 国产精品理论片在线观看 | 日本一区二区更新不卡 | 51国偷自产一区二区三区 | 亚洲日本一区二区三区在线 | 国产人妻精品午夜福利免费 | 亚洲人成影院在线无码按摩店 | 好男人社区资源 | 中文字幕无码av波多野吉衣 | 熟妇人妻无码xxx视频 | 国产精品久久久久9999小说 | 日日噜噜噜噜夜夜爽亚洲精品 | 少妇性l交大片 | 欧美亚洲国产一区二区三区 | 无码人妻黑人中文字幕 | 久久午夜无码鲁丝片午夜精品 | 奇米影视7777久久精品人人爽 | 久久久久久久久888 | 精品人人妻人人澡人人爽人人 | 天海翼激烈高潮到腰振不止 | 亚洲日韩乱码中文无码蜜桃臀网站 | 久久亚洲中文字幕精品一区 | 在线观看欧美一区二区三区 | 亚洲精品久久久久中文第一幕 | 成 人影片 免费观看 | 亚洲精品一区二区三区四区五区 | 成人三级无码视频在线观看 | 亚洲经典千人经典日产 | 中文精品久久久久人妻不卡 | 午夜成人1000部免费视频 | 欧美激情综合亚洲一二区 | 97夜夜澡人人爽人人喊中国片 | 久久午夜夜伦鲁鲁片无码免费 | 扒开双腿吃奶呻吟做受视频 | 欧美日韩综合一区二区三区 | 四虎国产精品一区二区 | 久久99精品国产.久久久久 | 国产无遮挡又黄又爽又色 | 国产两女互慰高潮视频在线观看 | 免费男性肉肉影院 | 正在播放东北夫妻内射 | 熟妇人妻激情偷爽文 | 色老头在线一区二区三区 | 亚洲色成人中文字幕网站 | 少妇被黑人到高潮喷出白浆 | 夜夜躁日日躁狠狠久久av | 久久午夜无码鲁丝片秋霞 | 日本熟妇浓毛 | 久久久av男人的天堂 | 蜜桃视频韩日免费播放 | 麻豆果冻传媒2021精品传媒一区下载 | yw尤物av无码国产在线观看 | 99久久婷婷国产综合精品青草免费 | 色诱久久久久综合网ywww | ass日本丰满熟妇pics | 国产特级毛片aaaaaa高潮流水 | 天天拍夜夜添久久精品大 | 亚洲综合无码久久精品综合 | 国产麻豆精品精东影业av网站 | 亚洲成a人片在线观看无码 | 亚洲综合色区中文字幕 | 亚洲中文字幕无码中字 | 国产精品无码久久av | 两性色午夜视频免费播放 | 欧美人与禽zoz0性伦交 | 一本加勒比波多野结衣 | 色婷婷综合中文久久一本 | 欧美野外疯狂做受xxxx高潮 | 精品人妻人人做人人爽夜夜爽 | 亚洲精品一区三区三区在线观看 | 国产精品久久久久影院嫩草 | 又色又爽又黄的美女裸体网站 | 亚洲色大成网站www国产 | 免费乱码人妻系列无码专区 | 丰满少妇女裸体bbw | 国产内射爽爽大片视频社区在线 | 国产69精品久久久久app下载 | 色一情一乱一伦一视频免费看 | 99er热精品视频 | 亚洲另类伦春色综合小说 | 成人欧美一区二区三区 | 久久国产精品二国产精品 | 亚洲精品中文字幕久久久久 | 99麻豆久久久国产精品免费 | 骚片av蜜桃精品一区 | 久久亚洲精品成人无码 | 亚洲欧洲中文日韩av乱码 | 亚洲人成网站色7799 | 中文字幕色婷婷在线视频 | 国精品人妻无码一区二区三区蜜柚 | 人妻少妇精品无码专区动漫 | 亚洲一区二区三区偷拍女厕 | 免费无码av一区二区 | 亚洲最大成人网站 | 日日橹狠狠爱欧美视频 | 蜜臀aⅴ国产精品久久久国产老师 | 97人妻精品一区二区三区 | 国语精品一区二区三区 | 人人妻人人澡人人爽精品欧美 | 国产精品无码久久av | 爱做久久久久久 | 日韩在线不卡免费视频一区 | 国产高清av在线播放 | 久久久久久亚洲精品a片成人 | 精品国产一区av天美传媒 | 日韩人妻无码中文字幕视频 | 国产乡下妇女做爰 | 亚洲男人av香蕉爽爽爽爽 | 无码乱肉视频免费大全合集 | 国产精品久久久久久亚洲影视内衣 | 亚洲区小说区激情区图片区 | 欧美熟妇另类久久久久久多毛 | 少妇厨房愉情理9仑片视频 | 亚洲熟熟妇xxxx | 中文精品无码中文字幕无码专区 | 亚洲欧洲无卡二区视頻 | 中文无码成人免费视频在线观看 | 日本精品少妇一区二区三区 | 国产亚洲精品久久久ai换 | 色婷婷欧美在线播放内射 | 日本精品高清一区二区 | 欧美 亚洲 国产 另类 | 欧美熟妇另类久久久久久不卡 | 最近免费中文字幕中文高清百度 | 亚洲 另类 在线 欧美 制服 | 久久亚洲日韩精品一区二区三区 | 精品一区二区不卡无码av | 性生交大片免费看l | 国产av人人夜夜澡人人爽麻豆 | 女高中生第一次破苞av | 日韩人妻系列无码专区 | 在线精品亚洲一区二区 | 亚洲一区二区三区香蕉 | 兔费看少妇性l交大片免费 | 思思久久99热只有频精品66 | 亚洲国产精品无码久久久久高潮 | 丰满妇女强制高潮18xxxx | 少妇性俱乐部纵欲狂欢电影 | 欧美丰满老熟妇xxxxx性 | 国产三级久久久精品麻豆三级 | 亚洲中文无码av永久不收费 | 亚洲码国产精品高潮在线 | 丰腴饱满的极品熟妇 | 国产深夜福利视频在线 | 精品国产精品久久一区免费式 | 99精品国产综合久久久久五月天 | 性欧美videos高清精品 | 国产精品久久久久久亚洲毛片 | 精品成人av一区二区三区 | 国产综合久久久久鬼色 | 国产精品.xx视频.xxtv | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 无码毛片视频一区二区本码 | 国产精品理论片在线观看 | 日韩 欧美 动漫 国产 制服 | 77777熟女视频在线观看 а天堂中文在线官网 | 中文字幕人妻无码一区二区三区 | 精品人妻人人做人人爽夜夜爽 | 偷窥日本少妇撒尿chinese | 美女张开腿让人桶 | 亚洲自偷自偷在线制服 | 丰满人妻一区二区三区免费视频 | 99精品久久毛片a片 | 精品国产一区二区三区av 性色 | 国产av无码专区亚洲awww | 娇妻被黑人粗大高潮白浆 | 成人一区二区免费视频 | 夜夜影院未满十八勿进 | 亚洲国产精品成人久久蜜臀 | 国产无遮挡又黄又爽又色 | 未满成年国产在线观看 | 色一情一乱一伦一视频免费看 | 日韩人妻系列无码专区 | 亚洲一区二区三区无码久久 | 亚洲精品成人av在线 | 18禁黄网站男男禁片免费观看 | 清纯唯美经典一区二区 | 131美女爱做视频 | 国产情侣作爱视频免费观看 | 国内精品九九久久久精品 | 捆绑白丝粉色jk震动捧喷白浆 | 理论片87福利理论电影 | 亚洲一区二区三区在线观看网站 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲乱码国产乱码精品精 | 伊人久久大香线蕉av一区二区 | 国语精品一区二区三区 | 人妻少妇被猛烈进入中文字幕 | 大肉大捧一进一出视频出来呀 | 色情久久久av熟女人妻网站 | 一本久道久久综合婷婷五月 | 国产美女极度色诱视频www | 人妻少妇精品无码专区动漫 | 日韩av无码一区二区三区不卡 | www一区二区www免费 | 国产精品嫩草久久久久 | 99re在线播放 | 亚洲 a v无 码免 费 成 人 a v | 国产在热线精品视频 | 亚洲精品一区二区三区大桥未久 | 久精品国产欧美亚洲色aⅴ大片 | 沈阳熟女露脸对白视频 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲熟女一区二区三区 | 欧美肥老太牲交大战 | 熟女少妇在线视频播放 | 东京无码熟妇人妻av在线网址 | 国产精品va在线观看无码 | 一本久道久久综合婷婷五月 | 久久精品国产大片免费观看 | 无码纯肉视频在线观看 | 中文字幕无码av激情不卡 | 亚洲精品美女久久久久久久 | 天天综合网天天综合色 | 成 人 网 站国产免费观看 | 国产精品久久久久无码av色戒 | 亚洲欧美国产精品专区久久 | 色综合久久久无码中文字幕 | 亚洲熟妇色xxxxx欧美老妇 | 乌克兰少妇xxxx做受 | 日本丰满熟妇videos | 水蜜桃色314在线观看 | 日韩人妻无码一区二区三区久久99 | 欧洲精品码一区二区三区免费看 | 国产绳艺sm调教室论坛 | 无套内谢的新婚少妇国语播放 | 欧美日韩综合一区二区三区 | 亚洲色偷偷偷综合网 | 最新国产麻豆aⅴ精品无码 | 4hu四虎永久在线观看 | 色婷婷香蕉在线一区二区 | 亚洲欧洲无卡二区视頻 | 人妻少妇被猛烈进入中文字幕 | 九一九色国产 | 国产高清av在线播放 | 亚洲国产欧美在线成人 | 奇米影视7777久久精品 | 男女性色大片免费网站 | 国产人妻久久精品二区三区老狼 | 欧美激情综合亚洲一二区 | 国产成人无码av片在线观看不卡 | 中文精品久久久久人妻不卡 | a在线观看免费网站大全 | 无码国产乱人伦偷精品视频 | 日韩无码专区 | 亚洲欧洲无卡二区视頻 | 国产成人综合色在线观看网站 | 亚洲成a人片在线观看无码 | 精品久久久久香蕉网 | 国产偷抇久久精品a片69 | 国产美女极度色诱视频www | 日本肉体xxxx裸交 | 中文字幕日韩精品一区二区三区 | 7777奇米四色成人眼影 | 久久久久久久久蜜桃 | 精品无码国产自产拍在线观看蜜 | 宝宝好涨水快流出来免费视频 | 亚洲国产精品成人久久蜜臀 | 国产乱子伦视频在线播放 | 国产午夜精品一区二区三区嫩草 | 人妻夜夜爽天天爽三区 | 女高中生第一次破苞av | 婷婷丁香五月天综合东京热 | 成 人 网 站国产免费观看 | 欧美精品一区二区精品久久 | 日本一卡二卡不卡视频查询 | 又粗又大又硬毛片免费看 | 人妻体内射精一区二区三四 | 欧美精品免费观看二区 | 男人的天堂av网站 | 亚洲国产精品久久人人爱 | 在线看片无码永久免费视频 | 波多野结衣av一区二区全免费观看 | 高潮喷水的毛片 | 人妻有码中文字幕在线 | 亚洲中文字幕乱码av波多ji | 久久无码中文字幕免费影院蜜桃 | 强辱丰满人妻hd中文字幕 | 狠狠色色综合网站 | 妺妺窝人体色www婷婷 | 精品无码国产一区二区三区av | 动漫av一区二区在线观看 | 蜜桃视频插满18在线观看 | 国产小呦泬泬99精品 | 日本一卡2卡3卡四卡精品网站 | 全球成人中文在线 | 久久国内精品自在自线 | 国产精品99久久精品爆乳 | 久久综合色之久久综合 | 久久精品国产大片免费观看 | 欧美人与禽zoz0性伦交 | 无码人妻精品一区二区三区不卡 | 精品国产一区二区三区四区在线看 | 精品国产成人一区二区三区 | 在线观看免费人成视频 | 奇米影视7777久久精品 | 亚洲国产av美女网站 | 西西人体www44rt大胆高清 | 国产成人无码专区 | 中文字幕+乱码+中文字幕一区 | 亚洲色在线无码国产精品不卡 | 麻豆精品国产精华精华液好用吗 | 久久精品国产一区二区三区肥胖 | 久久综合久久自在自线精品自 | 无人区乱码一区二区三区 | 欧美精品无码一区二区三区 | 国产在线精品一区二区高清不卡 | 亚欧洲精品在线视频免费观看 | 国产免费久久精品国产传媒 | 国产又粗又硬又大爽黄老大爷视 | 久久精品中文字幕一区 | 特黄特色大片免费播放器图片 | 欧洲精品码一区二区三区免费看 | 激情国产av做激情国产爱 | 国产成人无码av片在线观看不卡 | 久久精品人人做人人综合 | 麻豆蜜桃av蜜臀av色欲av | 国产成人综合美国十次 | 好爽又高潮了毛片免费下载 | 中文字幕日韩精品一区二区三区 | 国产亚洲精品久久久久久久久动漫 | 精品国精品国产自在久国产87 | 国产在线一区二区三区四区五区 | 扒开双腿疯狂进出爽爽爽视频 | 国产成人无码午夜视频在线观看 | 少妇性l交大片欧洲热妇乱xxx | 无码av中文字幕免费放 | 丰满人妻一区二区三区免费视频 | 免费视频欧美无人区码 | av在线亚洲欧洲日产一区二区 | 东京一本一道一二三区 | 宝宝好涨水快流出来免费视频 | 1000部啪啪未满十八勿入下载 | 亚洲 日韩 欧美 成人 在线观看 | 亚洲国产av精品一区二区蜜芽 | 亚洲国产欧美日韩精品一区二区三区 | 欧美丰满熟妇xxxx性ppx人交 | 美女毛片一区二区三区四区 | 亚洲欧美日韩成人高清在线一区 | 色综合久久久无码网中文 | 性做久久久久久久免费看 | 久久人人97超碰a片精品 | 精品一区二区三区波多野结衣 | 国产69精品久久久久app下载 | 久久亚洲精品成人无码 | 亚洲日韩av一区二区三区中文 | 十八禁真人啪啪免费网站 | 一二三四在线观看免费视频 | 亚洲 激情 小说 另类 欧美 | 亚洲一区二区三区含羞草 | 欧美丰满少妇xxxx性 | 亚洲国产精品久久久天堂 | 野外少妇愉情中文字幕 | 亚洲国产日韩a在线播放 | 一二三四在线观看免费视频 | 狠狠色欧美亚洲狠狠色www | 我要看www免费看插插视频 | 男女猛烈xx00免费视频试看 | 国产午夜无码精品免费看 | 亚洲精品成人福利网站 | 装睡被陌生人摸出水好爽 | 中文字幕乱妇无码av在线 | 无码成人精品区在线观看 | 亚洲成a人片在线观看日本 | 老子影院午夜精品无码 | 色婷婷欧美在线播放内射 | 久久www免费人成人片 | 亚洲小说图区综合在线 | 日韩人妻少妇一区二区三区 | 骚片av蜜桃精品一区 | 国产真人无遮挡作爱免费视频 | 国内精品久久毛片一区二区 | 一个人看的www免费视频在线观看 | 桃花色综合影院 | 又大又黄又粗又爽的免费视频 | 丰满人妻一区二区三区免费视频 | 女人被爽到呻吟gif动态图视看 | 日韩欧美成人免费观看 | 国产农村乱对白刺激视频 | 欧美熟妇另类久久久久久不卡 | 一本无码人妻在中文字幕免费 | 久久99精品国产麻豆 | 免费男性肉肉影院 | 秋霞成人午夜鲁丝一区二区三区 | 天堂а√在线地址中文在线 | 午夜丰满少妇性开放视频 | 国产内射爽爽大片视频社区在线 | 亚洲爆乳精品无码一区二区三区 | 婷婷六月久久综合丁香 | 亚洲gv猛男gv无码男同 | 日日碰狠狠躁久久躁蜜桃 | 亚洲精品美女久久久久久久 | 婷婷色婷婷开心五月四房播播 | 双乳奶水饱满少妇呻吟 | 国产激情精品一区二区三区 | 国产亚洲视频中文字幕97精品 | 国产熟妇高潮叫床视频播放 | 亚洲 欧美 激情 小说 另类 | 亚洲 激情 小说 另类 欧美 | 欧美人与禽zoz0性伦交 | 中文字幕乱码人妻二区三区 | 国产黑色丝袜在线播放 | 国产美女极度色诱视频www | 狠狠色噜噜狠狠狠7777奇米 | 无码乱肉视频免费大全合集 | 中国女人内谢69xxxx | 亚洲国产综合无码一区 | 丰满少妇高潮惨叫视频 | 日本丰满熟妇videos | 久久精品国产亚洲精品 | 国产精品毛多多水多 | 亚洲综合精品香蕉久久网 | 中文字幕精品av一区二区五区 | 免费网站看v片在线18禁无码 | 日本一区二区三区免费播放 | 亚洲精品久久久久久一区二区 | 国产 浪潮av性色四虎 | 中文字幕无码视频专区 | 综合网日日天干夜夜久久 | 男女猛烈xx00免费视频试看 | 亚洲伊人久久精品影院 | 亚洲精品午夜无码电影网 | 日韩精品乱码av一区二区 | 欧美三级不卡在线观看 | 欧美阿v高清资源不卡在线播放 | 国产人妻久久精品二区三区老狼 | 精品久久久久久亚洲精品 | 国产办公室秘书无码精品99 | av无码不卡在线观看免费 | 无码av免费一区二区三区试看 | 亚洲男女内射在线播放 | 在教室伦流澡到高潮hnp视频 | 蜜桃无码一区二区三区 | 国产偷抇久久精品a片69 | 精品日本一区二区三区在线观看 | 中文字幕人成乱码熟女app | 国产成人综合色在线观看网站 | 亚洲熟熟妇xxxx | 撕开奶罩揉吮奶头视频 | 国产极品美女高潮无套在线观看 | 成人性做爰aaa片免费看不忠 | 久久www免费人成人片 | 亚洲色欲色欲欲www在线 | 国产亚洲精品久久久久久久 | 日欧一片内射va在线影院 | 亚洲色在线无码国产精品不卡 | ass日本丰满熟妇pics | 亚洲国产欧美日韩精品一区二区三区 | 天堂亚洲2017在线观看 | 性生交大片免费看女人按摩摩 | 99久久精品午夜一区二区 | 国产精品香蕉在线观看 | 国产人成高清在线视频99最全资源 | 香蕉久久久久久av成人 | 大地资源网第二页免费观看 | 国产精品资源一区二区 | 人妻少妇精品无码专区动漫 | 人妻少妇精品久久 | yw尤物av无码国产在线观看 | 精品夜夜澡人妻无码av蜜桃 | 狠狠噜狠狠狠狠丁香五月 | 无码人妻精品一区二区三区下载 | 精品国产一区av天美传媒 | 人人超人人超碰超国产 | 国产成人综合在线女婷五月99播放 | 少妇高潮喷潮久久久影院 | 性欧美疯狂xxxxbbbb | 日日天日日夜日日摸 | 99久久无码一区人妻 | 亚洲精品成人福利网站 | 亚洲色大成网站www国产 | 国产成人无码区免费内射一片色欲 | 国产在线精品一区二区三区直播 | 少妇邻居内射在线 | 久久国产精品精品国产色婷婷 | 色综合久久88色综合天天 | 欧美亚洲日韩国产人成在线播放 | 成人欧美一区二区三区黑人 | 国产av一区二区三区最新精品 | 久久天天躁狠狠躁夜夜免费观看 | 女人高潮内射99精品 | 欧美高清在线精品一区 | 国产内射爽爽大片视频社区在线 | 国产精品-区区久久久狼 | 久久天天躁夜夜躁狠狠 | 久久久久成人精品免费播放动漫 | 九九在线中文字幕无码 | 最近的中文字幕在线看视频 | 沈阳熟女露脸对白视频 | 日日麻批免费40分钟无码 | 国产又爽又猛又粗的视频a片 | 99久久亚洲精品无码毛片 | 久久亚洲中文字幕无码 | 中文亚洲成a人片在线观看 | 人妻有码中文字幕在线 | 欧美国产日产一区二区 | 国产极品美女高潮无套在线观看 | 水蜜桃色314在线观看 | 激情内射日本一区二区三区 | 丰满少妇女裸体bbw | 亚洲春色在线视频 | 久久国产精品萌白酱免费 | 无码人妻久久一区二区三区不卡 | 丰满人妻一区二区三区免费视频 | 国产精品内射视频免费 | 国产97在线 | 亚洲 | 成人aaa片一区国产精品 | 久久亚洲中文字幕无码 | av人摸人人人澡人人超碰下载 | 国产又粗又硬又大爽黄老大爷视 | 97人妻精品一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 国产人妻人伦精品 | 国产内射爽爽大片视频社区在线 | 蜜桃臀无码内射一区二区三区 | 国产三级久久久精品麻豆三级 | 成人三级无码视频在线观看 | 图片区 小说区 区 亚洲五月 | √天堂资源地址中文在线 | 精品 日韩 国产 欧美 视频 |