久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問(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ò),歡迎將生活随笔推薦給好友。

国产 精品 自在自线 | 日韩av无码一区二区三区 | 亚洲一区二区三区四区 | 精品国偷自产在线视频 | 97人妻精品一区二区三区 | 久久国产精品_国产精品 | 久久天天躁夜夜躁狠狠 | 精品国产麻豆免费人成网站 | 久久精品国产一区二区三区 | 色综合久久网 | 双乳奶水饱满少妇呻吟 | 日韩精品乱码av一区二区 | 无套内射视频囯产 | 色情久久久av熟女人妻网站 | 久久久久99精品国产片 | 欧美黑人巨大xxxxx | 日本肉体xxxx裸交 | 国产成人人人97超碰超爽8 | 自拍偷自拍亚洲精品被多人伦好爽 | 天下第一社区视频www日本 | 色婷婷av一区二区三区之红樱桃 | 理论片87福利理论电影 | 亚洲区小说区激情区图片区 | 国产凸凹视频一区二区 | 久久精品中文字幕大胸 | 成人精品视频一区二区 | 无码人妻出轨黑人中文字幕 | 免费国产成人高清在线观看网站 | 久激情内射婷内射蜜桃人妖 | 欧美国产日韩久久mv | 夜夜夜高潮夜夜爽夜夜爰爰 | 成人aaa片一区国产精品 | 欧美性猛交内射兽交老熟妇 | 久久精品国产精品国产精品污 | 丰腴饱满的极品熟妇 | 亚洲欧洲中文日韩av乱码 | 亚洲男人av香蕉爽爽爽爽 | 欧美熟妇另类久久久久久多毛 | 麻豆人妻少妇精品无码专区 | 熟妇激情内射com | 国产高潮视频在线观看 | 亚洲人成网站免费播放 | 国内少妇偷人精品视频 | 嫩b人妻精品一区二区三区 | 国产sm调教视频在线观看 | 狠狠亚洲超碰狼人久久 | 中文字幕无码乱人伦 | 亚洲国产精品久久人人爱 | 亚洲一区二区三区偷拍女厕 | 天天燥日日燥 | 国产卡一卡二卡三 | 成人av无码一区二区三区 | 激情人妻另类人妻伦 | 亚洲精品中文字幕乱码 | 乱人伦人妻中文字幕无码久久网 | 国产午夜手机精彩视频 | 久久亚洲精品中文字幕无男同 | 亚洲成色www久久网站 | 久久精品中文闷骚内射 | 狂野欧美性猛交免费视频 | 国产精品对白交换视频 | 久久久久久a亚洲欧洲av冫 | 日韩精品一区二区av在线 | 麻豆av传媒蜜桃天美传媒 | 免费国产成人高清在线观看网站 | 亚洲成av人片在线观看无码不卡 | 久久无码中文字幕免费影院蜜桃 | 人妻与老人中文字幕 | 久久久久99精品国产片 | 爆乳一区二区三区无码 | 免费无码av一区二区 | 亚洲国产一区二区三区在线观看 | 亚洲欧美国产精品专区久久 | 一本久久a久久精品亚洲 | 国产欧美亚洲精品a | 久久久久免费看成人影片 | 久久久久久av无码免费看大片 | 国产亚洲精品久久久ai换 | 精品久久久久久亚洲精品 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 欧美国产日韩久久mv | 狠狠亚洲超碰狼人久久 | 风流少妇按摩来高潮 | 国产精品理论片在线观看 | 国产无遮挡又黄又爽免费视频 | 中文字幕无线码免费人妻 | 无码一区二区三区在线 | √天堂中文官网8在线 | 亚洲精品国产第一综合99久久 | av无码不卡在线观看免费 | 内射白嫩少妇超碰 | 99riav国产精品视频 | 国产成人精品无码播放 | 中文精品久久久久人妻不卡 | 中文字幕人妻无码一区二区三区 | 国产高潮视频在线观看 | 欧美日韩一区二区三区自拍 | 久久国语露脸国产精品电影 | 女人高潮内射99精品 | 麻豆av传媒蜜桃天美传媒 | 99精品国产综合久久久久五月天 | 国产精品igao视频网 | 久久久久久国产精品无码下载 | 国产无套内射久久久国产 | 精品国产一区av天美传媒 | 国产精品爱久久久久久久 | 漂亮人妻洗澡被公强 日日躁 | 妺妺窝人体色www婷婷 | 男人和女人高潮免费网站 | 黑人大群体交免费视频 | 成人精品视频一区二区三区尤物 | 欧美日韩在线亚洲综合国产人 | 亚洲中文字幕在线无码一区二区 | 中文字幕日韩精品一区二区三区 | 亚洲精品美女久久久久久久 | 99精品国产综合久久久久五月天 | 熟妇人妻无乱码中文字幕 | 亚洲一区二区三区四区 | 久久精品丝袜高跟鞋 | 国产偷国产偷精品高清尤物 | 国语自产偷拍精品视频偷 | 中文字幕精品av一区二区五区 | 牲交欧美兽交欧美 | 精品熟女少妇av免费观看 | 日日摸日日碰夜夜爽av | 午夜性刺激在线视频免费 | 亚洲一区二区三区在线观看网站 | 日韩精品无码一区二区中文字幕 | 婷婷五月综合缴情在线视频 | 欧美成人免费全部网站 | 日本一区二区三区免费播放 | 久久久成人毛片无码 | 国产国语老龄妇女a片 | 东京无码熟妇人妻av在线网址 | 精品国产一区二区三区四区在线看 | 亚洲精品一区二区三区四区五区 | 免费乱码人妻系列无码专区 | 天天躁夜夜躁狠狠是什么心态 | 蜜臀aⅴ国产精品久久久国产老师 | 国产内射老熟女aaaa | 女人被爽到呻吟gif动态图视看 | 国产特级毛片aaaaaaa高清 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 人妻aⅴ无码一区二区三区 | 内射后入在线观看一区 | 国产精品第一区揄拍无码 | 亚洲另类伦春色综合小说 | 丁香花在线影院观看在线播放 | 国产真人无遮挡作爱免费视频 | 色综合天天综合狠狠爱 | 无遮无挡爽爽免费视频 | 国产情侣作爱视频免费观看 | 亚洲欧美综合区丁香五月小说 | 狠狠躁日日躁夜夜躁2020 | 狠狠色噜噜狠狠狠7777奇米 | 99久久久无码国产精品免费 | 影音先锋中文字幕无码 | 久在线观看福利视频 | 精品乱子伦一区二区三区 | 正在播放老肥熟妇露脸 | 十八禁真人啪啪免费网站 | 日本乱偷人妻中文字幕 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久人人爽人人人人片 | 久久久精品人妻久久影视 | 国产莉萝无码av在线播放 | 国产午夜亚洲精品不卡下载 | 夜夜影院未满十八勿进 | 无码国产色欲xxxxx视频 | 亚洲国产av美女网站 | 亚洲成a人片在线观看日本 | 人妻互换免费中文字幕 | 亚洲va欧美va天堂v国产综合 | 无码吃奶揉捏奶头高潮视频 | 亚洲成av人片在线观看无码不卡 | 波多野结衣 黑人 | 最新国产乱人伦偷精品免费网站 | 伊在人天堂亚洲香蕉精品区 | 日本一区二区更新不卡 | 精品亚洲成av人在线观看 | 荫蒂添的好舒服视频囗交 | 国产亚洲日韩欧美另类第八页 | 国产av无码专区亚洲awww | 亚洲va欧美va天堂v国产综合 | 男女超爽视频免费播放 | 国精品人妻无码一区二区三区蜜柚 | 欧美性生交xxxxx久久久 | 一本久久a久久精品vr综合 | 国产精品国产自线拍免费软件 | 女人被男人躁得好爽免费视频 | 国产特级毛片aaaaaaa高清 | 欧美35页视频在线观看 | 亚洲精品久久久久avwww潮水 | 亚洲男人av天堂午夜在 | 日本熟妇浓毛 | 好男人www社区 | 色爱情人网站 | 亚洲精品久久久久久久久久久 | 日本大乳高潮视频在线观看 | 国产免费久久精品国产传媒 | 55夜色66夜色国产精品视频 | 日本高清一区免费中文视频 | 三上悠亚人妻中文字幕在线 | 国产人妻人伦精品1国产丝袜 | 亚洲精品一区国产 | 免费播放一区二区三区 | 亚洲国产欧美在线成人 | 国产特级毛片aaaaaa高潮流水 | 西西人体www44rt大胆高清 | 天干天干啦夜天干天2017 | 欧美黑人性暴力猛交喷水 | 欧美人与禽zoz0性伦交 | 亚洲一区二区三区无码久久 | 丝袜足控一区二区三区 | 日韩欧美群交p片內射中文 | 日韩av无码中文无码电影 | 亚洲码国产精品高潮在线 | 欧美日韩综合一区二区三区 | 久久久www成人免费毛片 | 樱花草在线播放免费中文 | 久久综合色之久久综合 | 国产超碰人人爽人人做人人添 | 综合激情五月综合激情五月激情1 | 日韩欧美中文字幕在线三区 | 少女韩国电视剧在线观看完整 | 国产精品久久精品三级 | 国产偷自视频区视频 | 亚洲aⅴ无码成人网站国产app | 爽爽影院免费观看 | 日本一卡2卡3卡四卡精品网站 | 亚欧洲精品在线视频免费观看 | 麻豆果冻传媒2021精品传媒一区下载 | 娇妻被黑人粗大高潮白浆 | 亚洲日韩av片在线观看 | 久久久精品国产sm最大网站 | 国产av剧情md精品麻豆 | 偷窥村妇洗澡毛毛多 | 中国女人内谢69xxxx | 亚洲精品综合五月久久小说 | 精品欧美一区二区三区久久久 | 四虎国产精品一区二区 | 无码帝国www无码专区色综合 | 日本精品少妇一区二区三区 | 国产亲子乱弄免费视频 | 夜夜高潮次次欢爽av女 | 人人爽人人澡人人人妻 | 色综合视频一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国产偷国产偷精品高清尤物 | 欧美国产亚洲日韩在线二区 | 亚洲乱码中文字幕在线 | 日日麻批免费40分钟无码 | 狠狠色噜噜狠狠狠7777奇米 | 亚洲国产综合无码一区 | 久久久中文字幕日本无吗 | 熟妇女人妻丰满少妇中文字幕 | 亚洲人交乣女bbw | 亚洲人成人无码网www国产 | 永久免费观看美女裸体的网站 | 国色天香社区在线视频 | 久久久久久久人妻无码中文字幕爆 | 国色天香社区在线视频 | 亚洲小说春色综合另类 | 麻豆精产国品 | 装睡被陌生人摸出水好爽 | 国产av无码专区亚洲a∨毛片 | 高清国产亚洲精品自在久久 | 少妇久久久久久人妻无码 | 国产精品二区一区二区aⅴ污介绍 | 丰满诱人的人妻3 | 亚洲综合精品香蕉久久网 | a在线亚洲男人的天堂 | 成熟妇人a片免费看网站 | 极品尤物被啪到呻吟喷水 | 人妻少妇精品久久 | 国产又粗又硬又大爽黄老大爷视 | 精品无码国产自产拍在线观看蜜 | 国色天香社区在线视频 | 色综合久久久久综合一本到桃花网 | 377p欧洲日本亚洲大胆 | 亚洲国产精品美女久久久久 | 日本va欧美va欧美va精品 | 亚洲精品一区二区三区大桥未久 | 日日鲁鲁鲁夜夜爽爽狠狠 | 图片区 小说区 区 亚洲五月 | 国产激情综合五月久久 | 欧美兽交xxxx×视频 | 免费人成网站视频在线观看 | 欧美猛少妇色xxxxx | 欧美性生交xxxxx久久久 | 99久久婷婷国产综合精品青草免费 | 性色av无码免费一区二区三区 | 无套内谢老熟女 | 精品无人区无码乱码毛片国产 | 日韩av无码一区二区三区不卡 | 熟女少妇人妻中文字幕 | 亚洲欧美中文字幕5发布 | 色综合久久88色综合天天 | 在线观看免费人成视频 | 亚洲人成网站色7799 | 亚洲の无码国产の无码步美 | 国产精品久久精品三级 | 国产精品国产自线拍免费软件 | 亚洲精品久久久久久久久久久 | 亚洲国精产品一二二线 | 日韩视频 中文字幕 视频一区 | 欧美freesex黑人又粗又大 | 又紧又大又爽精品一区二区 | 扒开双腿吃奶呻吟做受视频 | 久9re热视频这里只有精品 | 麻豆国产97在线 | 欧洲 | 日韩精品无码免费一区二区三区 | 精品一区二区三区波多野结衣 | 波多野42部无码喷潮在线 | 大乳丰满人妻中文字幕日本 | 1000部啪啪未满十八勿入下载 | 东北女人啪啪对白 | 久久五月精品中文字幕 | 天天做天天爱天天爽综合网 | 亚洲欧美色中文字幕在线 | 日本在线高清不卡免费播放 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国产精品久免费的黄网站 | 国产小呦泬泬99精品 | 亚洲国产高清在线观看视频 | 久久久中文久久久无码 | 日本丰满熟妇videos | 亚洲一区二区三区国产精华液 | 日韩欧美成人免费观看 | 亚洲欧美日韩国产精品一区二区 | 野外少妇愉情中文字幕 | 成人一区二区免费视频 | 无码av中文字幕免费放 | 亚拍精品一区二区三区探花 | 午夜精品久久久久久久久 | 人人澡人人透人人爽 | 国产亚洲精品久久久久久国模美 | 99久久久国产精品无码免费 | 午夜福利不卡在线视频 | 无码人妻av免费一区二区三区 | 高潮毛片无遮挡高清免费视频 | 国内精品人妻无码久久久影院 | 强奷人妻日本中文字幕 | 中国女人内谢69xxxxxa片 | 久久综合九色综合欧美狠狠 | 国产色视频一区二区三区 | 思思久久99热只有频精品66 | 亚洲中文字幕成人无码 | 亚洲欧美精品aaaaaa片 | 无码人妻精品一区二区三区不卡 | 久久 国产 尿 小便 嘘嘘 | 四虎永久在线精品免费网址 | 欧美日韩视频无码一区二区三 | 日本xxxx色视频在线观看免费 | 国产午夜精品一区二区三区嫩草 | 国产精品沙发午睡系列 | 成人免费视频一区二区 | 成人精品天堂一区二区三区 | 亚洲精品成人av在线 | 国产亲子乱弄免费视频 | 日韩精品无码一区二区中文字幕 | 少妇无码一区二区二三区 | 亚洲色欲久久久综合网东京热 | 99久久精品无码一区二区毛片 | 国产亚洲精品久久久闺蜜 | 中国大陆精品视频xxxx | 日韩人妻无码中文字幕视频 | 国产成人一区二区三区在线观看 | 任你躁国产自任一区二区三区 | 国产成人av免费观看 | 福利一区二区三区视频在线观看 | 日韩 欧美 动漫 国产 制服 | 美女毛片一区二区三区四区 | 亚洲区小说区激情区图片区 | 丰满少妇人妻久久久久久 | 欧美黑人巨大xxxxx | 国产特级毛片aaaaaa高潮流水 | 无码国内精品人妻少妇 | 图片区 小说区 区 亚洲五月 | 又黄又爽又色的视频 | 欧美熟妇另类久久久久久多毛 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲精品国偷拍自产在线麻豆 | 又大又紧又粉嫩18p少妇 | 中文字幕无码免费久久99 | 色窝窝无码一区二区三区色欲 | 无码av中文字幕免费放 | 成 人影片 免费观看 | 少妇性l交大片欧洲热妇乱xxx | 欧美人与动性行为视频 | 亚洲第一网站男人都懂 | 国模大胆一区二区三区 | 无码成人精品区在线观看 | 欧美三级a做爰在线观看 | 成 人 免费观看网站 | 成人精品视频一区二区 | 国产精品18久久久久久麻辣 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲综合伊人久久大杳蕉 | 成人欧美一区二区三区黑人免费 | 理论片87福利理论电影 | 久久久精品国产sm最大网站 | 精品久久久中文字幕人妻 | 亚洲 另类 在线 欧美 制服 | 少妇性荡欲午夜性开放视频剧场 | 水蜜桃av无码 | 亚洲 另类 在线 欧美 制服 | 天海翼激烈高潮到腰振不止 | 双乳奶水饱满少妇呻吟 | 色婷婷综合中文久久一本 | 国产免费久久久久久无码 | 色妞www精品免费视频 | 亚洲人成影院在线无码按摩店 | 国产极品美女高潮无套在线观看 | 久久久精品人妻久久影视 | 少妇激情av一区二区 | 中文字幕日产无线码一区 | 性欧美疯狂xxxxbbbb | 乱中年女人伦av三区 | 亚洲 欧美 激情 小说 另类 | 人人妻人人澡人人爽欧美一区 | 高中生自慰www网站 | av无码电影一区二区三区 | 国产成人一区二区三区在线观看 | 丝袜 中出 制服 人妻 美腿 | 日韩精品一区二区av在线 | 无遮挡啪啪摇乳动态图 | 99久久精品日本一区二区免费 | 国产精品福利视频导航 | 色诱久久久久综合网ywww | 国产精华av午夜在线观看 | 夜夜夜高潮夜夜爽夜夜爰爰 | 日本丰满护士爆乳xxxx | 中文字幕无码人妻少妇免费 | 亚洲国产欧美国产综合一区 | 18禁黄网站男男禁片免费观看 | 丰满护士巨好爽好大乳 | 日韩av无码一区二区三区 | 美女黄网站人色视频免费国产 | 精品久久久久久人妻无码中文字幕 | 未满小14洗澡无码视频网站 | 成人综合网亚洲伊人 | 女人被爽到呻吟gif动态图视看 | 亚洲国产综合无码一区 | 99国产欧美久久久精品 | www国产亚洲精品久久久日本 | 任你躁国产自任一区二区三区 | 樱花草在线播放免费中文 | 国产精品久久久一区二区三区 | 少妇性l交大片欧洲热妇乱xxx | 国产明星裸体无码xxxx视频 | 亚洲中文字幕无码一久久区 | 中文字幕无码免费久久9一区9 | 国产美女极度色诱视频www | 精品乱码久久久久久久 | 久久午夜无码鲁丝片秋霞 | 久久人人爽人人人人片 | 无人区乱码一区二区三区 | 国产精品无码永久免费888 | 久9re热视频这里只有精品 | 久久国产精品精品国产色婷婷 | 久久久无码中文字幕久... | 97久久超碰中文字幕 | 成人精品视频一区二区三区尤物 | 中文字幕日韩精品一区二区三区 | 午夜福利一区二区三区在线观看 | 亚洲精品午夜国产va久久成人 | 伊人久久大香线蕉午夜 | 波多野结衣aⅴ在线 | 白嫩日本少妇做爰 | 亚洲爆乳大丰满无码专区 | 少妇的肉体aa片免费 | 国产精品久久久久9999小说 | 日本丰满熟妇videos | 波多野结衣av在线观看 | 男女作爱免费网站 | 精品国产av色一区二区深夜久久 | 亚洲人亚洲人成电影网站色 | 国产av久久久久精东av | 色综合天天综合狠狠爱 | 老太婆性杂交欧美肥老太 | 成人精品一区二区三区中文字幕 | 精品欧美一区二区三区久久久 | 欧美肥老太牲交大战 | 最近的中文字幕在线看视频 | 国产精品久久久久无码av色戒 | 亚洲综合伊人久久大杳蕉 | 国产精品.xx视频.xxtv | 亚洲一区二区三区含羞草 | 久久久久久亚洲精品a片成人 | 正在播放老肥熟妇露脸 | 图片区 小说区 区 亚洲五月 | yw尤物av无码国产在线观看 | 亚洲 日韩 欧美 成人 在线观看 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲熟妇色xxxxx欧美老妇y | 一本大道久久东京热无码av | 四虎4hu永久免费 | 国内揄拍国内精品少妇国语 | 国产av剧情md精品麻豆 | 男女超爽视频免费播放 | 亚洲天堂2017无码 | 荡女精品导航 | 国产精品久久久久久久影院 | 国产精品亚洲一区二区三区喷水 | 一二三四社区在线中文视频 | 激情内射日本一区二区三区 | 亚洲区小说区激情区图片区 | 中文字幕无码免费久久9一区9 | 中文无码精品a∨在线观看不卡 | 欧美自拍另类欧美综合图片区 | 丰满肥臀大屁股熟妇激情视频 | 亚洲综合无码久久精品综合 | 日韩欧美中文字幕公布 | 久久久国产一区二区三区 | 精品国产麻豆免费人成网站 | 国产成人无码a区在线观看视频app | 日产精品99久久久久久 | 国产精品亚洲а∨无码播放麻豆 | 久久精品一区二区三区四区 | 国内揄拍国内精品少妇国语 | 日本成熟视频免费视频 | 亚洲一区av无码专区在线观看 | 国产性生交xxxxx无码 | 日韩人妻无码一区二区三区久久99 | 无码福利日韩神码福利片 | 日本肉体xxxx裸交 | 婷婷六月久久综合丁香 | 成人片黄网站色大片免费观看 | 欧美激情综合亚洲一二区 | 精品无人国产偷自产在线 | 国产成人精品优优av | 四十如虎的丰满熟妇啪啪 | 老头边吃奶边弄进去呻吟 | 精品国产一区二区三区四区 | 丰满岳乱妇在线观看中字无码 | 久久久久亚洲精品男人的天堂 | 无码人妻丰满熟妇区五十路百度 | 人妻少妇精品视频专区 | 国产香蕉尹人综合在线观看 | 日韩欧美群交p片內射中文 | 国精产品一品二品国精品69xx | 亚洲码国产精品高潮在线 | 亚洲性无码av中文字幕 | 福利一区二区三区视频在线观看 | 免费人成在线观看网站 | 丰满诱人的人妻3 | 日本熟妇人妻xxxxx人hd | 国产偷抇久久精品a片69 | 欧美精品在线观看 | 国产亚洲视频中文字幕97精品 | 久久久久av无码免费网 | 久久精品成人欧美大片 | 国内综合精品午夜久久资源 | 亚洲精品一区二区三区在线观看 | 国产精品无码mv在线观看 | 欧美老人巨大xxxx做受 | 天天av天天av天天透 | 99久久精品国产一区二区蜜芽 | 中文精品无码中文字幕无码专区 | 无码精品人妻一区二区三区av | 国产麻豆精品精东影业av网站 | 秋霞成人午夜鲁丝一区二区三区 | 日本精品少妇一区二区三区 | 亚洲色欲色欲天天天www | 在线观看国产一区二区三区 | 亚洲热妇无码av在线播放 | 精品久久久久香蕉网 | 久久综合色之久久综合 | 天堂无码人妻精品一区二区三区 | 少妇久久久久久人妻无码 | 久久国产自偷自偷免费一区调 | 成人欧美一区二区三区黑人免费 | 久久久久成人精品免费播放动漫 | 亚洲综合精品香蕉久久网 | av在线亚洲欧洲日产一区二区 | 亚洲成av人综合在线观看 | 人人妻人人澡人人爽欧美一区九九 | 欧美刺激性大交 | 伊人久久婷婷五月综合97色 | 玩弄中年熟妇正在播放 | 国产精品久久久久久亚洲毛片 | 人妻有码中文字幕在线 | 日本成熟视频免费视频 | 日本精品久久久久中文字幕 | yw尤物av无码国产在线观看 | 免费无码av一区二区 | 综合激情五月综合激情五月激情1 | 曰韩少妇内射免费播放 | 漂亮人妻洗澡被公强 日日躁 | 欧美日韩一区二区免费视频 | 蜜桃视频韩日免费播放 | 2020久久超碰国产精品最新 | 亚洲aⅴ无码成人网站国产app | 亚洲码国产精品高潮在线 | 无码av最新清无码专区吞精 | 国产成人精品一区二区在线小狼 | 国内揄拍国内精品人妻 | 精品乱子伦一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 精品无码成人片一区二区98 | 天天综合网天天综合色 | 亚洲精品无码人妻无码 | 亚洲性无码av中文字幕 | 国产手机在线αⅴ片无码观看 | 国产无遮挡又黄又爽又色 | 99国产精品白浆在线观看免费 | 激情人妻另类人妻伦 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲欧洲中文日韩av乱码 | 亚洲色在线无码国产精品不卡 | 国产成人精品久久亚洲高清不卡 | 色狠狠av一区二区三区 | 亚洲精品成人福利网站 | 双乳奶水饱满少妇呻吟 | 欧美三级a做爰在线观看 | 久久国产精品二国产精品 | 欧美高清在线精品一区 | 久久精品人人做人人综合试看 | 亚洲国产精品无码久久久久高潮 | 亚洲s码欧洲m码国产av | 国产深夜福利视频在线 | 天下第一社区视频www日本 | a片免费视频在线观看 | 人人爽人人澡人人人妻 | 久久亚洲日韩精品一区二区三区 | 少妇人妻偷人精品无码视频 | 少妇邻居内射在线 | 日韩精品无码一本二本三本色 | 红桃av一区二区三区在线无码av | 精品人妻人人做人人爽 | 国产精品内射视频免费 | 18黄暴禁片在线观看 | 亚洲精品一区二区三区在线观看 | 久久国产精品萌白酱免费 | 日韩少妇白浆无码系列 | 动漫av网站免费观看 | 高清不卡一区二区三区 | 国产亚洲精品久久久闺蜜 | 亚洲精品中文字幕 | 99精品无人区乱码1区2区3区 | 国产成人一区二区三区在线观看 | 欧美人与禽猛交狂配 | 成人欧美一区二区三区黑人免费 | 一本久道高清无码视频 | 国产又爽又黄又刺激的视频 | av无码电影一区二区三区 | 久久久久久久女国产乱让韩 | 一个人免费观看的www视频 | 狠狠色色综合网站 | 婷婷五月综合激情中文字幕 | 暴力强奷在线播放无码 | 国産精品久久久久久久 | 欧美怡红院免费全部视频 | 欧美性生交活xxxxxdddd | 我要看www免费看插插视频 | 夜精品a片一区二区三区无码白浆 | 最新版天堂资源中文官网 | 波多野42部无码喷潮在线 | 国产精品美女久久久网av | 日韩欧美中文字幕在线三区 | 亚洲精品一区二区三区在线观看 | 亚洲另类伦春色综合小说 | 久精品国产欧美亚洲色aⅴ大片 | 在线播放免费人成毛片乱码 | 国产成人精品久久亚洲高清不卡 | 国产莉萝无码av在线播放 | 亚洲国产av美女网站 | 精品一二三区久久aaa片 | 亚洲色成人中文字幕网站 | 狠狠色欧美亚洲狠狠色www | 丰满肥臀大屁股熟妇激情视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲小说图区综合在线 | 搡女人真爽免费视频大全 | 国产精品办公室沙发 | 久久久婷婷五月亚洲97号色 | 国产亚洲美女精品久久久2020 | 午夜熟女插插xx免费视频 | 无码中文字幕色专区 | 日本熟妇人妻xxxxx人hd | 久久久久国色av免费观看性色 | 亚洲の无码国产の无码步美 | 131美女爱做视频 | 色欲综合久久中文字幕网 | 欧美日韩人成综合在线播放 | 波多野结衣一区二区三区av免费 | 精品无人国产偷自产在线 | 国产真实伦对白全集 | 国产av久久久久精东av | 亚洲一区二区三区播放 | 又黄又爽又色的视频 | 久青草影院在线观看国产 | 18精品久久久无码午夜福利 | 精品欧洲av无码一区二区三区 | 亚洲 另类 在线 欧美 制服 | 精品久久久久久亚洲精品 | 成人无码精品1区2区3区免费看 | 大肉大捧一进一出视频出来呀 | 中文字幕人妻无码一区二区三区 | 亚洲日本va中文字幕 | 色综合久久久无码网中文 | 亚洲精品一区二区三区在线观看 | 一本大道久久东京热无码av | 成人精品视频一区二区三区尤物 | 国产激情精品一区二区三区 | ass日本丰满熟妇pics | 亲嘴扒胸摸屁股激烈网站 | 久久精品国产精品国产精品污 | 5858s亚洲色大成网站www | 久久综合激激的五月天 | www国产精品内射老师 | 亚洲午夜久久久影院 | 国产精品久免费的黄网站 | 欧美熟妇另类久久久久久多毛 | 在线精品国产一区二区三区 | 人人妻人人澡人人爽欧美一区 | 日日摸天天摸爽爽狠狠97 | 日本乱偷人妻中文字幕 | 午夜精品久久久久久久 | 国产成人无码a区在线观看视频app | 亚洲第一网站男人都懂 | 亚洲成av人影院在线观看 | 国产精品久久福利网站 | 亚洲精品www久久久 | 精品国产av色一区二区深夜久久 | 久久久国产精品无码免费专区 | 色爱情人网站 | 国产亚洲精品久久久ai换 | 国产极品视觉盛宴 | 久久精品国产亚洲精品 | 精品一区二区三区波多野结衣 | 狠狠色噜噜狠狠狠7777奇米 | 久久无码专区国产精品s | 欧美日本精品一区二区三区 | 亚洲精品成人av在线 | 午夜精品久久久久久久 | www国产精品内射老师 | 中文字幕乱码人妻无码久久 | 日本乱人伦片中文三区 | 国产成人无码av一区二区 | 国产两女互慰高潮视频在线观看 | 在线观看欧美一区二区三区 | 内射爽无广熟女亚洲 | 欧美一区二区三区视频在线观看 | 国内精品人妻无码久久久影院蜜桃 | 综合人妻久久一区二区精品 | 熟女俱乐部五十路六十路av | 1000部啪啪未满十八勿入下载 | 亚洲精品一区二区三区在线观看 | 中国女人内谢69xxxx | 丰满人妻翻云覆雨呻吟视频 | 青青青爽视频在线观看 | 岛国片人妻三上悠亚 | 精品人妻人人做人人爽 | 国产激情艳情在线看视频 | 人妻熟女一区 | 无码国产激情在线观看 | 小鲜肉自慰网站xnxx | 国产手机在线αⅴ片无码观看 | 激情亚洲一区国产精品 | 亚洲第一无码av无码专区 | 无码人妻黑人中文字幕 | 在线观看欧美一区二区三区 | 99久久婷婷国产综合精品青草免费 | 亚洲爆乳大丰满无码专区 | 精品少妇爆乳无码av无码专区 | 久久久久人妻一区精品色欧美 | 日韩av无码一区二区三区 | 97夜夜澡人人双人人人喊 | 大肉大捧一进一出视频出来呀 | 久久精品丝袜高跟鞋 | 人妻少妇精品视频专区 | 在教室伦流澡到高潮hnp视频 | 亚洲综合无码一区二区三区 | 捆绑白丝粉色jk震动捧喷白浆 | 在线亚洲高清揄拍自拍一品区 | 天堂一区人妻无码 | 水蜜桃亚洲一二三四在线 | 亚洲综合伊人久久大杳蕉 | 夜夜躁日日躁狠狠久久av | 亚洲理论电影在线观看 | 午夜精品一区二区三区在线观看 | 丰满妇女强制高潮18xxxx | 人人爽人人澡人人人妻 | 少妇性荡欲午夜性开放视频剧场 | 久久精品国产一区二区三区肥胖 | 水蜜桃av无码 | 亚洲日韩av片在线观看 | 俺去俺来也www色官网 | 中文毛片无遮挡高清免费 | 一个人看的视频www在线 | 任你躁在线精品免费 | 亚洲精品国偷拍自产在线麻豆 | 无码一区二区三区在线 | 久久综合网欧美色妞网 | 水蜜桃色314在线观看 | 久热国产vs视频在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 秋霞成人午夜鲁丝一区二区三区 | 国产精品无套呻吟在线 | 小泽玛莉亚一区二区视频在线 | 欧美怡红院免费全部视频 | 亚洲欧美日韩国产精品一区二区 | 国产麻豆精品一区二区三区v视界 | 狠狠综合久久久久综合网 | 午夜福利不卡在线视频 | 国产在线aaa片一区二区99 | 亚洲男人av香蕉爽爽爽爽 | 中文字幕无码人妻少妇免费 | 久久国产精品_国产精品 | 午夜福利试看120秒体验区 | 亚洲天堂2017无码中文 | 午夜福利一区二区三区在线观看 | 在线观看欧美一区二区三区 | 人人妻人人澡人人爽精品欧美 | 伊人久久大香线焦av综合影院 | 久久久精品人妻久久影视 | 国产超碰人人爽人人做人人添 | 精品亚洲韩国一区二区三区 | 久久综合九色综合欧美狠狠 | 日本一区二区更新不卡 | 99久久精品国产一区二区蜜芽 | 国产 浪潮av性色四虎 | 亚洲欧洲中文日韩av乱码 | 少妇人妻偷人精品无码视频 | 樱花草在线播放免费中文 | 欧美性黑人极品hd | 免费国产成人高清在线观看网站 | 色婷婷欧美在线播放内射 | 未满小14洗澡无码视频网站 | 亚洲精品无码国产 | 日韩av激情在线观看 | 思思久久99热只有频精品66 | 天天躁夜夜躁狠狠是什么心态 | 18禁止看的免费污网站 | 搡女人真爽免费视频大全 | 国产精品无码成人午夜电影 | 久久午夜夜伦鲁鲁片无码免费 | 久久 国产 尿 小便 嘘嘘 | 成人免费无码大片a毛片 | 国产日产欧产精品精品app | 欧美性生交活xxxxxdddd | 婷婷五月综合缴情在线视频 | 秋霞特色aa大片 | 中文字幕色婷婷在线视频 | 欧美激情内射喷水高潮 | 99久久久无码国产精品免费 | 无码播放一区二区三区 | 色欲综合久久中文字幕网 | 人妻尝试又大又粗久久 | 国产精品久久久午夜夜伦鲁鲁 | 精品国产一区二区三区四区在线看 | 欧洲精品码一区二区三区免费看 | 欧美人与动性行为视频 | 国产电影无码午夜在线播放 | 日日鲁鲁鲁夜夜爽爽狠狠 | 国内精品久久毛片一区二区 | 久久久精品欧美一区二区免费 | 色五月丁香五月综合五月 | 久久五月精品中文字幕 | 欧美性猛交xxxx富婆 | 欧美日本精品一区二区三区 | 强辱丰满人妻hd中文字幕 | 国产午夜亚洲精品不卡下载 | 国产一区二区不卡老阿姨 | 奇米影视888欧美在线观看 | 久久精品中文字幕大胸 | 性色欲网站人妻丰满中文久久不卡 | 欧美三级不卡在线观看 | 成人欧美一区二区三区黑人 | 色欲久久久天天天综合网精品 | 久久久精品国产sm最大网站 | 99精品久久毛片a片 | 国产又爽又猛又粗的视频a片 | 日韩亚洲欧美中文高清在线 | 国产性生交xxxxx无码 | 久久久久av无码免费网 | 久久这里只有精品视频9 | 亚洲精品中文字幕 | 久久99精品国产.久久久久 | 九九综合va免费看 | 亚洲一区二区三区国产精华液 | 免费网站看v片在线18禁无码 | 久久99精品国产麻豆蜜芽 | 国产亚洲精品久久久ai换 | 国产成人无码av在线影院 | 国产农村乱对白刺激视频 | 国产免费无码一区二区视频 | 欧美熟妇另类久久久久久多毛 | 乱人伦人妻中文字幕无码久久网 | 亚洲人成影院在线无码按摩店 | 九九久久精品国产免费看小说 | 乱人伦中文视频在线观看 | 国产一区二区三区精品视频 | 成人无码影片精品久久久 | 亚洲国产成人a精品不卡在线 | 国产精品久久久久久亚洲影视内衣 | 久久 国产 尿 小便 嘘嘘 | 日本精品少妇一区二区三区 | 欧洲极品少妇 | 国产一区二区三区四区五区加勒比 | 亚洲小说图区综合在线 | 3d动漫精品啪啪一区二区中 | 国产猛烈高潮尖叫视频免费 | 国产办公室秘书无码精品99 | 婷婷丁香五月天综合东京热 | 久久精品国产精品国产精品污 | 欧美人与禽猛交狂配 | 免费乱码人妻系列无码专区 | 久久精品女人天堂av免费观看 | 精品国产青草久久久久福利 | 国产肉丝袜在线观看 | 久久久久se色偷偷亚洲精品av | 麻豆果冻传媒2021精品传媒一区下载 | 成熟妇人a片免费看网站 | 亚洲s码欧洲m码国产av | 中文字幕人成乱码熟女app | 国产综合在线观看 | 九九热爱视频精品 | 国产 浪潮av性色四虎 | 亚洲人成无码网www | 亚洲人交乣女bbw | 波多野结衣 黑人 | 又大又黄又粗又爽的免费视频 | 国产成人精品视频ⅴa片软件竹菊 | 久久久久亚洲精品中文字幕 | 精品国产一区av天美传媒 | 国产网红无码精品视频 | 三上悠亚人妻中文字幕在线 | 亚洲精品www久久久 | 中文字幕无码视频专区 | 熟妇女人妻丰满少妇中文字幕 | 在线欧美精品一区二区三区 | 国产激情一区二区三区 | 天堂亚洲免费视频 | 人妻尝试又大又粗久久 | 色婷婷欧美在线播放内射 | 亚洲毛片av日韩av无码 | 精品国偷自产在线视频 | 狠狠亚洲超碰狼人久久 | 一区二区传媒有限公司 | 精品国产精品久久一区免费式 | 无码免费一区二区三区 | 在线播放免费人成毛片乱码 | 亚洲成av人影院在线观看 | 久久亚洲精品中文字幕无男同 | 精品欧洲av无码一区二区三区 | 亚洲一区二区三区香蕉 | 亚洲男人av天堂午夜在 | 亚洲熟妇自偷自拍另类 | 无套内谢的新婚少妇国语播放 | 国产97人人超碰caoprom | 国内精品久久久久久中文字幕 | 日本www一道久久久免费榴莲 | 两性色午夜免费视频 | 少妇无码吹潮 | 丝袜 中出 制服 人妻 美腿 | 国产亚洲欧美日韩亚洲中文色 | 久久久亚洲欧洲日产国码αv | 亚洲欧美色中文字幕在线 | 亚洲国产精品无码一区二区三区 | 图片区 小说区 区 亚洲五月 | 久久久精品欧美一区二区免费 | 亚洲国产精品无码一区二区三区 | 国产无套粉嫩白浆在线 | 亚洲综合无码一区二区三区 | 国产亚洲视频中文字幕97精品 | 无码人妻丰满熟妇区毛片18 | 国产超级va在线观看视频 | 蜜臀aⅴ国产精品久久久国产老师 | 在线观看国产午夜福利片 | 午夜成人1000部免费视频 | 国产熟妇高潮叫床视频播放 | 欧美日本免费一区二区三区 | 国产精品福利视频导航 | 中文字幕乱码人妻二区三区 | 东京热男人av天堂 | 少妇无码av无码专区在线观看 | 领导边摸边吃奶边做爽在线观看 | 无码精品国产va在线观看dvd | 男女下面进入的视频免费午夜 | 麻豆国产人妻欲求不满谁演的 | 国产va免费精品观看 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲大尺度无码无码专区 | 久久久久免费看成人影片 | 成在人线av无码免费 | 国产精品第一国产精品 | 国产精品久久久久久亚洲影视内衣 | 国产精品毛片一区二区 | 精品人妻人人做人人爽 | 成人av无码一区二区三区 | 内射爽无广熟女亚洲 | 荫蒂被男人添的好舒服爽免费视频 | 伊人久久大香线蕉av一区二区 | 亚洲色欲色欲欲www在线 | 国产超碰人人爽人人做人人添 | 中文字幕av日韩精品一区二区 | 两性色午夜免费视频 | 亚洲成av人影院在线观看 | www国产亚洲精品久久网站 | 天堂а√在线地址中文在线 | 少妇性荡欲午夜性开放视频剧场 | av在线亚洲欧洲日产一区二区 | 76少妇精品导航 | 黑人大群体交免费视频 | 内射巨臀欧美在线视频 | 日韩精品久久久肉伦网站 | 狂野欧美激情性xxxx | 国产成人精品三级麻豆 | 国产精品理论片在线观看 | 精品久久8x国产免费观看 | 亚洲综合久久一区二区 | 熟妇女人妻丰满少妇中文字幕 | 丰满人妻被黑人猛烈进入 | 亚洲精品国产精品乱码视色 | 亚洲自偷自偷在线制服 | 国内揄拍国内精品少妇国语 | 亚洲综合伊人久久大杳蕉 | 久久综合激激的五月天 | 成 人 网 站国产免费观看 | yw尤物av无码国产在线观看 | 露脸叫床粗话东北少妇 | 色窝窝无码一区二区三区色欲 | 久久99精品国产.久久久久 | 久久久久久久久蜜桃 | 久久人人爽人人人人片 | 成人免费无码大片a毛片 | 精品无人国产偷自产在线 | 少妇性俱乐部纵欲狂欢电影 | 成人无码视频在线观看网站 | 大肉大捧一进一出好爽视频 | 午夜精品一区二区三区在线观看 | 影音先锋中文字幕无码 | 亚洲狠狠色丁香婷婷综合 | 亚洲大尺度无码无码专区 | 欧美日韩一区二区三区自拍 | 久久无码中文字幕免费影院蜜桃 | 亚洲欧美国产精品专区久久 | 露脸叫床粗话东北少妇 | 无码免费一区二区三区 | 思思久久99热只有频精品66 | 国产又爽又猛又粗的视频a片 | 国产特级毛片aaaaaaa高清 | 成人aaa片一区国产精品 | 牲欲强的熟妇农村老妇女视频 | 国产精品高潮呻吟av久久 | 天堂久久天堂av色综合 | 乱码av麻豆丝袜熟女系列 | 精品乱码久久久久久久 | 人妻互换免费中文字幕 | 亚洲男人av天堂午夜在 | 久久99精品久久久久久 | 色婷婷av一区二区三区之红樱桃 | 国产成人精品一区二区在线小狼 | 人人妻人人澡人人爽人人精品 | 99精品国产综合久久久久五月天 | 色婷婷av一区二区三区之红樱桃 | 亚洲の无码国产の无码步美 | 亚洲七七久久桃花影院 | 色综合久久中文娱乐网 | 精品一区二区三区波多野结衣 | 日韩欧美中文字幕在线三区 | 99久久亚洲精品无码毛片 | 一个人免费观看的www视频 | 久久国产精品偷任你爽任你 | 国产精品欧美成人 | 狠狠综合久久久久综合网 | 久久精品国产日本波多野结衣 | 人妻少妇精品视频专区 | av无码久久久久不卡免费网站 | 18无码粉嫩小泬无套在线观看 | 秋霞成人午夜鲁丝一区二区三区 | 精品国偷自产在线 | 国产在线精品一区二区三区直播 | 沈阳熟女露脸对白视频 | 免费乱码人妻系列无码专区 | 曰本女人与公拘交酡免费视频 | 丰满人妻精品国产99aⅴ | 国产人妻精品一区二区三区不卡 | 欧美大屁股xxxxhd黑色 | 中文字幕av无码一区二区三区电影 | 妺妺窝人体色www婷婷 | 日本精品人妻无码77777 天堂一区人妻无码 | 国产精品亚洲五月天高清 | 最新国产乱人伦偷精品免费网站 | 亚洲精品中文字幕 | 超碰97人人做人人爱少妇 | 极品尤物被啪到呻吟喷水 | 我要看www免费看插插视频 | 亚洲欧美日韩成人高清在线一区 | 中文字幕乱码人妻二区三区 | 精品久久久久久亚洲精品 | 亚洲 欧美 激情 小说 另类 | 日日夜夜撸啊撸 | 亚洲熟妇色xxxxx欧美老妇y | 成人片黄网站色大片免费观看 | 中文字幕 人妻熟女 | 无码国模国产在线观看 | 亚洲国产av精品一区二区蜜芽 | 国产sm调教视频在线观看 | 夫妻免费无码v看片 | 国产又粗又硬又大爽黄老大爷视 | 99久久人妻精品免费二区 | 2020最新国产自产精品 | 无码人中文字幕 | 激情爆乳一区二区三区 | 色欲人妻aaaaaaa无码 | 日本熟妇人妻xxxxx人hd | 国产乱人伦av在线无码 | 在线看片无码永久免费视频 | 日本爽爽爽爽爽爽在线观看免 | 亚洲成a人片在线观看无码 | 日本在线高清不卡免费播放 | 亚洲综合无码久久精品综合 | 无码人妻精品一区二区三区不卡 | 久久久精品456亚洲影院 | 丝袜人妻一区二区三区 | 日韩精品a片一区二区三区妖精 | 欧美激情综合亚洲一二区 | 日日天干夜夜狠狠爱 | 中文字幕亚洲情99在线 | 欧美35页视频在线观看 | 亚洲精品无码人妻无码 | 久久99精品久久久久久动态图 | 欧美日韩综合一区二区三区 | 亚洲 另类 在线 欧美 制服 | 国产亚洲tv在线观看 | 中文字幕久久久久人妻 | 人妻少妇被猛烈进入中文字幕 | 精品久久久无码人妻字幂 | 鲁大师影院在线观看 | 久久亚洲a片com人成 | 午夜福利一区二区三区在线观看 | 天天燥日日燥 | 欧美老人巨大xxxx做受 | 欧美日韩在线亚洲综合国产人 | 红桃av一区二区三区在线无码av | 亚洲国产精品久久久天堂 | 人人妻人人澡人人爽人人精品浪潮 | 永久免费精品精品永久-夜色 | 波多野结衣av在线观看 | 欧美日韩综合一区二区三区 | 成人免费视频在线观看 | 中文字幕日产无线码一区 | 亚洲色欲色欲欲www在线 | 亚洲中文字幕无码中文字在线 | 成人av无码一区二区三区 | 亚洲成a人一区二区三区 | 亚洲人成人无码网www国产 | 高潮毛片无遮挡高清免费视频 | 国产av剧情md精品麻豆 | 久久亚洲精品成人无码 | 伊人久久大香线蕉av一区二区 | 国产精品无码久久av | 亚洲精品一区二区三区在线 | 少妇无码av无码专区在线观看 | 曰本女人与公拘交酡免费视频 | a在线亚洲男人的天堂 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日韩少妇内射免费播放 | 亚洲成色在线综合网站 | 捆绑白丝粉色jk震动捧喷白浆 | 国产无套内射久久久国产 | 亚洲第一无码av无码专区 | 精品无码国产自产拍在线观看蜜 | 亚洲人成影院在线无码按摩店 | 亚洲精品一区二区三区大桥未久 | 中文字幕无码免费久久99 | 亚洲熟妇自偷自拍另类 | 青草青草久热国产精品 | 97久久精品无码一区二区 | 少妇高潮一区二区三区99 | 国产欧美熟妇另类久久久 | 亚洲日韩一区二区 | 亚洲午夜久久久影院 | 99国产欧美久久久精品 | 搡女人真爽免费视频大全 | 性欧美牲交在线视频 | 日日碰狠狠躁久久躁蜜桃 | 在线看片无码永久免费视频 | 99久久99久久免费精品蜜桃 | 日本爽爽爽爽爽爽在线观看免 | 欧美人妻一区二区三区 | 欧美人妻一区二区三区 | 亚洲精品国产精品乱码视色 | 任你躁国产自任一区二区三区 | 成熟妇人a片免费看网站 | 日韩精品一区二区av在线 | 中文字幕+乱码+中文字幕一区 | 青草青草久热国产精品 | 桃花色综合影院 | 国产特级毛片aaaaaa高潮流水 | 国产精品高潮呻吟av久久 | 国产精品igao视频网 | 伊人色综合久久天天小片 | 人人妻人人澡人人爽欧美一区 | 国产精品久久久久久久影院 | 精品久久久久香蕉网 | 99久久精品午夜一区二区 | 内射巨臀欧美在线视频 | 精品国产一区二区三区四区 | 色五月五月丁香亚洲综合网 | 天堂一区人妻无码 | 欧美性猛交xxxx富婆 | 亚洲国产精品久久人人爱 | 亚洲色大成网站www国产 | 精品久久久久久亚洲精品 | 奇米影视7777久久精品人人爽 | 最新国产麻豆aⅴ精品无码 | 成 人影片 免费观看 | 日本www一道久久久免费榴莲 | 亚洲国产高清在线观看视频 | 97久久超碰中文字幕 | 日日麻批免费40分钟无码 | 无码中文字幕色专区 | 精品人妻人人做人人爽夜夜爽 | 一本大道久久东京热无码av | 窝窝午夜理论片影院 | 精品欧洲av无码一区二区三区 | 真人与拘做受免费视频 | 熟女体下毛毛黑森林 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久视频在线观看精品 | yw尤物av无码国产在线观看 | 一本加勒比波多野结衣 | 国内精品久久久久久中文字幕 | 男女爱爱好爽视频免费看 | 人人妻人人澡人人爽欧美精品 | 亚洲精品一区二区三区四区五区 | 欧洲精品码一区二区三区免费看 | 在线亚洲高清揄拍自拍一品区 | 正在播放东北夫妻内射 | 国产疯狂伦交大片 | 97无码免费人妻超级碰碰夜夜 | 国产成人无码一二三区视频 | 人妻无码αv中文字幕久久琪琪布 | 午夜时刻免费入口 | 久久国产精品_国产精品 | 国产激情精品一区二区三区 | 国产精品久久久久久亚洲影视内衣 | 欧美日韩一区二区三区自拍 | 2020久久香蕉国产线看观看 | 成熟人妻av无码专区 | 一本久道久久综合狠狠爱 | 亚洲一区二区三区偷拍女厕 | 亚洲国产欧美日韩精品一区二区三区 | 国产午夜亚洲精品不卡下载 | 亚洲成熟女人毛毛耸耸多 | 欧美一区二区三区 | 丰满少妇女裸体bbw | 色五月丁香五月综合五月 | 成 人 网 站国产免费观看 | 国产成人无码av在线影院 | 亚洲s码欧洲m码国产av | 人妻插b视频一区二区三区 | 国产精品99久久精品爆乳 | 久久无码中文字幕免费影院蜜桃 | 婷婷丁香六月激情综合啪 | 亚洲aⅴ无码成人网站国产app | 国产午夜无码视频在线观看 | 国产深夜福利视频在线 | 伊人色综合久久天天小片 | 欧美 日韩 亚洲 在线 | 麻豆国产人妻欲求不满谁演的 | 国产网红无码精品视频 | 欧美 日韩 人妻 高清 中文 | 综合人妻久久一区二区精品 | 中文字幕精品av一区二区五区 | 亚洲精品一区国产 | 国产suv精品一区二区五 | 亚洲欧美日韩国产精品一区二区 | 国产乱人伦偷精品视频 | 久久精品国产精品国产精品污 | 无码精品人妻一区二区三区av | 欧美老妇与禽交 | 国产精品久免费的黄网站 | 99久久人妻精品免费二区 | 久久午夜无码鲁丝片午夜精品 | 国产亲子乱弄免费视频 | 国产午夜无码精品免费看 | 日韩视频 中文字幕 视频一区 | 4hu四虎永久在线观看 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品久久久av久久久 | 欧美刺激性大交 | 久久久av男人的天堂 | 亚洲精品国产精品乱码不卡 | 国产免费无码一区二区视频 | 熟妇人妻无乱码中文字幕 | 女人色极品影院 | 极品尤物被啪到呻吟喷水 | 亚洲中文字幕av在天堂 | 久久久久久国产精品无码下载 | 国产精品无码永久免费888 | 久热国产vs视频在线观看 | 亚洲国产一区二区三区在线观看 | 久久久久人妻一区精品色欧美 | 77777熟女视频在线观看 а天堂中文在线官网 | 风流少妇按摩来高潮 | 亚洲欧美日韩综合久久久 | 18无码粉嫩小泬无套在线观看 | 亚洲理论电影在线观看 | 亚洲国产精品无码久久久久高潮 | 丰满少妇人妻久久久久久 | 亚欧洲精品在线视频免费观看 | 秋霞成人午夜鲁丝一区二区三区 | 丰满少妇人妻久久久久久 | 国产精品无码一区二区三区不卡 | 亚洲精品国产品国语在线观看 | 婷婷五月综合缴情在线视频 | 免费中文字幕日韩欧美 | 亚洲自偷自拍另类第1页 | 亚洲色欲色欲欲www在线 | 乱人伦人妻中文字幕无码 | 无码人妻黑人中文字幕 | 亚洲高清偷拍一区二区三区 | 日本大香伊一区二区三区 | 久久精品中文字幕一区 | 亚洲日韩av一区二区三区中文 | 一本久久伊人热热精品中文字幕 | 人妻人人添人妻人人爱 | 在线欧美精品一区二区三区 | 无码纯肉视频在线观看 | 九九久久精品国产免费看小说 | 特级做a爰片毛片免费69 | 激情爆乳一区二区三区 | 最新版天堂资源中文官网 | 色欲av亚洲一区无码少妇 | 精品国产一区二区三区四区在线看 | 国产成人一区二区三区在线观看 | 亚洲 激情 小说 另类 欧美 | 久久zyz资源站无码中文动漫 | 伊人久久大香线蕉午夜 | 亚洲精品中文字幕 | 国产午夜亚洲精品不卡 | 国产成人无码专区 | 久久久久se色偷偷亚洲精品av | 人人妻人人澡人人爽欧美一区九九 | 国产av久久久久精东av | 无码人妻精品一区二区三区不卡 | 国产日产欧产精品精品app | 香港三级日本三级妇三级 | 亚洲一区二区三区香蕉 | 久久久久国色av免费观看性色 | 一本无码人妻在中文字幕免费 | 婷婷丁香六月激情综合啪 | 国产亚洲tv在线观看 | 牲欲强的熟妇农村老妇女 | 国内精品人妻无码久久久影院 | 乱中年女人伦av三区 | 亚洲性无码av中文字幕 | 国产精品内射视频免费 | a在线亚洲男人的天堂 | 99久久精品国产一区二区蜜芽 | 欧美阿v高清资源不卡在线播放 | 无遮挡国产高潮视频免费观看 | 亚洲成av人综合在线观看 | 亚洲成在人网站无码天堂 | 男女作爱免费网站 | 永久黄网站色视频免费直播 | 国内综合精品午夜久久资源 | 中文字幕久久久久人妻 | 欧美人与牲动交xxxx | 成人精品视频一区二区三区尤物 | 国产亚洲精品久久久久久 | 亚洲熟女一区二区三区 | √天堂中文官网8在线 | 久久精品国产99精品亚洲 | 国产精品久久久久影院嫩草 | 水蜜桃色314在线观看 | 国产精品亚洲综合色区韩国 | 东北女人啪啪对白 | 欧美日韩人成综合在线播放 | 久久国产自偷自偷免费一区调 | 无码福利日韩神码福利片 | 人妻人人添人妻人人爱 | 欧美成人家庭影院 | 国产亚洲视频中文字幕97精品 | 少妇被黑人到高潮喷出白浆 | 欧美人与善在线com | 少妇太爽了在线观看 | 亚洲国精产品一二二线 | 丰满诱人的人妻3 | 伊人久久婷婷五月综合97色 | 国产av无码专区亚洲a∨毛片 | 国产无遮挡又黄又爽又色 | 欧美激情综合亚洲一二区 | 婷婷丁香六月激情综合啪 | 亚洲欧美国产精品专区久久 | 少妇厨房愉情理9仑片视频 | 亚洲日韩一区二区三区 | 中文字幕无码av激情不卡 | 蜜桃无码一区二区三区 | 18禁黄网站男男禁片免费观看 | 久激情内射婷内射蜜桃人妖 | 国产精品嫩草久久久久 | 午夜福利一区二区三区在线观看 | 中文字幕精品av一区二区五区 | 一本久久a久久精品亚洲 | 亚洲色无码一区二区三区 | 国产在线无码精品电影网 | 成年女人永久免费看片 | 欧美日韩久久久精品a片 | 婷婷五月综合缴情在线视频 | 欧洲欧美人成视频在线 | 成人无码影片精品久久久 | 国产乱人无码伦av在线a | 国内精品一区二区三区不卡 | 一本色道久久综合亚洲精品不卡 | 亚洲成av人片天堂网无码】 | 日韩精品无码免费一区二区三区 | 成人无码精品一区二区三区 | 无码国产色欲xxxxx视频 | 久久久久久a亚洲欧洲av冫 | 少妇高潮一区二区三区99 | 亚洲人成网站免费播放 | www成人国产高清内射 | 日本一卡二卡不卡视频查询 | 日本一卡2卡3卡四卡精品网站 | 国产亚洲精品精品国产亚洲综合 | 麻豆国产97在线 | 欧洲 | 日日躁夜夜躁狠狠躁 | 97人妻精品一区二区三区 | 日本乱偷人妻中文字幕 | 熟妇女人妻丰满少妇中文字幕 | 欧美日本精品一区二区三区 | 色婷婷综合激情综在线播放 | 色综合久久久久综合一本到桃花网 | 亚洲欧洲无卡二区视頻 | 日韩精品一区二区av在线 | 日韩av无码中文无码电影 | 久久国内精品自在自线 | 久久午夜无码鲁丝片午夜精品 | 中文字幕日产无线码一区 | 久久久久久国产精品无码下载 | 国产无套内射久久久国产 | 欧美日韩在线亚洲综合国产人 | 鲁大师影院在线观看 | 中文亚洲成a人片在线观看 | 国产色在线 | 国产 | 特级做a爰片毛片免费69 | 伊在人天堂亚洲香蕉精品区 | 欧美zoozzooz性欧美 | 久久www免费人成人片 | 国产偷抇久久精品a片69 | 国産精品久久久久久久 | 女人被爽到呻吟gif动态图视看 | 国产成人av免费观看 | 学生妹亚洲一区二区 | 成人女人看片免费视频放人 | 精品国产成人一区二区三区 | 久久久av男人的天堂 | 在线观看欧美一区二区三区 | 亚洲国产精品美女久久久久 | 久久综合狠狠综合久久综合88 | 中文亚洲成a人片在线观看 | 国产黄在线观看免费观看不卡 | 国产偷抇久久精品a片69 | 性生交大片免费看l | 国产乱人无码伦av在线a | 国产精品高潮呻吟av久久4虎 | 国产高潮视频在线观看 | 日本欧美一区二区三区乱码 | 麻豆精品国产精华精华液好用吗 | 国产亚洲精品久久久闺蜜 | 久久亚洲中文字幕无码 | 久久亚洲中文字幕无码 | 亚洲精品国产a久久久久久 | 少妇无码av无码专区在线观看 | 一本色道婷婷久久欧美 | 欧美高清在线精品一区 | 久久久久亚洲精品中文字幕 | 亚洲国产高清在线观看视频 | 精品厕所偷拍各类美女tp嘘嘘 | 中文字幕+乱码+中文字幕一区 | 好男人社区资源 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日韩精品无码一区二区中文字幕 | yw尤物av无码国产在线观看 | 日本成熟视频免费视频 | 国产精品美女久久久久av爽李琼 | 免费中文字幕日韩欧美 | 国内精品人妻无码久久久影院 | 在线天堂新版最新版在线8 | 亚洲欧美日韩综合久久久 | 国产激情无码一区二区app | 老熟女重囗味hdxx69 | 日日夜夜撸啊撸 | 国产莉萝无码av在线播放 | 国产成人久久精品流白浆 | 久久国产自偷自偷免费一区调 | 波多野结衣高清一区二区三区 | 国内精品九九久久久精品 | 国产精品亚洲lv粉色 | 欧美国产亚洲日韩在线二区 | 国产精品亚洲综合色区韩国 | 男人扒开女人内裤强吻桶进去 | 久久精品国产99精品亚洲 | 国产成人无码av在线影院 | 18精品久久久无码午夜福利 | 少妇激情av一区二区 | 巨爆乳无码视频在线观看 | 久久精品女人天堂av免费观看 | 国产免费久久精品国产传媒 | 4hu四虎永久在线观看 | 丰满岳乱妇在线观看中字无码 | 俺去俺来也在线www色官网 | 中文字幕人妻无码一区二区三区 | 欧美激情一区二区三区成人 | 一本色道久久综合狠狠躁 | 国产一区二区三区日韩精品 | 日日橹狠狠爱欧美视频 | 成人av无码一区二区三区 | 永久免费观看国产裸体美女 | 国产成人精品久久亚洲高清不卡 | 极品嫩模高潮叫床 | 亚洲熟妇自偷自拍另类 | 综合网日日天干夜夜久久 | 中文字幕无码热在线视频 | 欧美一区二区三区 | 国产欧美亚洲精品a | 亚洲国产一区二区三区在线观看 | 67194成是人免费无码 | 国产成人精品视频ⅴa片软件竹菊 | 免费网站看v片在线18禁无码 | 无码成人精品区在线观看 | 成人无码精品1区2区3区免费看 | 高清国产亚洲精品自在久久 | 久久精品一区二区三区四区 | 高潮喷水的毛片 | 精品久久久无码人妻字幂 | 中文精品久久久久人妻不卡 | 精品久久久无码人妻字幂 | 国内精品久久毛片一区二区 | 国产内射爽爽大片视频社区在线 | 亚洲娇小与黑人巨大交 | 国产精品a成v人在线播放 | 久久精品无码一区二区三区 | 人妻少妇精品无码专区二区 | 日本一卡二卡不卡视频查询 | 国产偷国产偷精品高清尤物 | 免费播放一区二区三区 | 亚洲一区二区三区在线观看网站 | 帮老师解开蕾丝奶罩吸乳网站 | 国产精品.xx视频.xxtv | 无套内射视频囯产 | 国产国产精品人在线视 | 日本va欧美va欧美va精品 | 亚洲国产精品久久人人爱 | 人妻少妇精品无码专区二区 | 男人扒开女人内裤强吻桶进去 | 日本精品久久久久中文字幕 | 精品人人妻人人澡人人爽人人 | 97精品人妻一区二区三区香蕉 | 清纯唯美经典一区二区 | 久久久无码中文字幕久... | 领导边摸边吃奶边做爽在线观看 | 成人性做爰aaa片免费看 | 日本大香伊一区二区三区 | 欧美午夜特黄aaaaaa片 | 国产精品怡红院永久免费 | 丰满少妇女裸体bbw | 四虎永久在线精品免费网址 | 无码任你躁久久久久久久 | 国产日产欧产精品精品app | 成人亚洲精品久久久久 | 国产午夜精品一区二区三区嫩草 | 精品人妻人人做人人爽夜夜爽 | 亚洲中文字幕无码一久久区 | 少妇无套内谢久久久久 | 亚洲一区二区三区国产精华液 | 成人精品视频一区二区三区尤物 | 蜜桃臀无码内射一区二区三区 | 曰本女人与公拘交酡免费视频 | 中文字幕无码人妻少妇免费 | 天下第一社区视频www日本 | 亚洲色欲色欲欲www在线 | 国产疯狂伦交大片 | 偷窥村妇洗澡毛毛多 | 色情久久久av熟女人妻网站 | 天海翼激烈高潮到腰振不止 | 日韩人妻无码中文字幕视频 | 日本精品人妻无码77777 天堂一区人妻无码 | 欧美第一黄网免费网站 | 亚洲国产成人av在线观看 | 亚洲色www成人永久网址 | 少妇无码吹潮 | 2020最新国产自产精品 | 波多野结衣av一区二区全免费观看 | 欧美老熟妇乱xxxxx | 激情爆乳一区二区三区 | 欧美乱妇无乱码大黄a片 | 久久五月精品中文字幕 | 人人澡人人透人人爽 | 中文字幕色婷婷在线视频 | 天天拍夜夜添久久精品大 | 日日碰狠狠丁香久燥 | 在线成人www免费观看视频 | 美女黄网站人色视频免费国产 | 动漫av一区二区在线观看 | 午夜成人1000部免费视频 | 在线观看欧美一区二区三区 | 亚洲欧美日韩综合久久久 | 久久久中文字幕日本无吗 | 久久精品无码一区二区三区 | 日日干夜夜干 | 亚洲精品国产品国语在线观看 | 国产莉萝无码av在线播放 | 在线看片无码永久免费视频 | 欧美日韩亚洲国产精品 | 国精产品一品二品国精品69xx | 午夜性刺激在线视频免费 | 国产无套内射久久久国产 | 国产在线aaa片一区二区99 | 人妻少妇被猛烈进入中文字幕 | 国产成人亚洲综合无码 | 欧美熟妇另类久久久久久多毛 | 国产精品嫩草久久久久 | 自拍偷自拍亚洲精品10p | 久久精品成人欧美大片 | 日本又色又爽又黄的a片18禁 | 欧美一区二区三区 | 亚洲国产精品毛片av不卡在线 | 性欧美videos高清精品 | 无码吃奶揉捏奶头高潮视频 | 狠狠色丁香久久婷婷综合五月 | 亚洲色在线无码国产精品不卡 | 福利一区二区三区视频在线观看 | 国产成人精品必看 | 中文字幕无码人妻少妇免费 | 久久无码中文字幕免费影院蜜桃 | 国产精品高潮呻吟av久久4虎 | 中文字幕日产无线码一区 | 国产成人无码专区 | 波多野结衣一区二区三区av免费 | 性色欲情网站iwww九文堂 | 国产精品办公室沙发 | 国产色精品久久人妻 | 日本在线高清不卡免费播放 | 免费网站看v片在线18禁无码 | 久久久久亚洲精品男人的天堂 | 国产又粗又硬又大爽黄老大爷视 | 最近中文2019字幕第二页 | 无码毛片视频一区二区本码 | 国产乱人伦偷精品视频 | 日韩欧美中文字幕在线三区 | 亚洲中文字幕无码一久久区 | 中文字幕无码人妻少妇免费 | 欧美性生交活xxxxxdddd | 欧美一区二区三区 | 亚洲国精产品一二二线 | 精品无码av一区二区三区 | 亚洲国产精品无码一区二区三区 | 日韩视频 中文字幕 视频一区 | 日韩av无码一区二区三区 | 中文字幕av伊人av无码av | 四虎永久在线精品免费网址 | 亚洲中文字幕久久无码 | 久久亚洲精品中文字幕无男同 | 两性色午夜视频免费播放 | 日韩欧美群交p片內射中文 | 亚洲午夜久久久影院 | 亚洲gv猛男gv无码男同 | 成人无码精品一区二区三区 | 鲁鲁鲁爽爽爽在线视频观看 | 日韩在线不卡免费视频一区 | 好屌草这里只有精品 | 无码人妻少妇伦在线电影 | 欧美三级a做爰在线观看 | 国产97人人超碰caoprom | 国产精品久久久久久久影院 | 午夜丰满少妇性开放视频 | 1000部夫妻午夜免费 | 亚洲成av人片在线观看无码不卡 |