成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS開發(fā)中如何快速上手Xcode 6

譯文
移動開發(fā) iOS
Xcode的每一次版本更新都專注于為開發(fā)人員帶來更為強(qiáng)大的工具方案,幫助他們更為順暢地完成應(yīng)用程序構(gòu)建。在今年發(fā)布的Xcode 6版本當(dāng)中,開發(fā)人員繼續(xù)迎來更多軟件設(shè)計與構(gòu)建的全新方式。在今天的教程中,我們將對Xocde 6中的新型與改進(jìn)功能加以概述,同時介紹大家應(yīng)如何將其應(yīng)用到自己的開發(fā)工作當(dāng)中。

【51CTO譯文】Xcode的每一次版本更新都專注于為開發(fā)人員帶來更為強(qiáng)大的工具方案,幫助他們更為順暢地完成應(yīng)用程序構(gòu)建。在今年發(fā)布的Xcode 6版本當(dāng)中,開發(fā)人員繼續(xù)迎來更多軟件設(shè)計與構(gòu)建的全新方式。在今天的教程中,我們將對Xocde 6中的新型與改進(jìn)功能加以概述,同時介紹大家應(yīng)如何將其應(yīng)用到自己的開發(fā)工作當(dāng)中。

1.Playgrounds

在今年的WWDC大會上,蘋果公司正式公布了Swift——一款面向蘋果移動設(shè)備軟件開發(fā)工作的全新編程語言。為了配合新語言的誕生,Xcode 6新增了一項名為Playgrounds的功能——這其實是一套交互工作區(qū),開發(fā)人員可以在此編寫Swift代碼并在無需將其運(yùn)行在設(shè)備或者模擬器中的前提下獲取實時運(yùn)行效果反饋。這對于Xcode來說無疑是一種很好的補(bǔ)充,現(xiàn)在各位可以在將自己的代碼成果正式添加到主代碼庫內(nèi)之前,以實驗性方式快速便捷地掌握地實時運(yùn)行效果。

2. Interface Builder

今年WWDC大會的另一大主題議題在于構(gòu)建自適應(yīng)式應(yīng)用程序。相對于原本針對特定屏幕尺寸構(gòu)建應(yīng)用程序,蘋果公司現(xiàn)在鼓勵開發(fā)人員打造出能夠忽略實際屏幕大小、自動與運(yùn)行所在平臺相適應(yīng)的應(yīng)用程序產(chǎn)品。

這一舉措實際上源自最初誕生于iOS 6系統(tǒng)當(dāng)中的Auto Layout及其數(shù)個后續(xù)版本,該方案允許開發(fā)人員直接創(chuàng)建能夠同時運(yùn)行在3.5英寸與4.0英寸屏幕上的應(yīng)用方案。如今這一機(jī)制得到了進(jìn)一步改善,iOS開發(fā)人員已經(jīng)能夠打造出直接運(yùn)行在全部受支持iPhone平臺上的應(yīng)用程序,其中包括新一代4.7英寸iPhone 6與5.5英寸iPhone 6 Plus——連iPad也可使用同一套代碼庫。

Interface Builder經(jīng)歷了一系列重大變更后才真正實現(xiàn)了對此類自適應(yīng)式應(yīng)用程序的開發(fā)支持能力。同時添加的其它一些新功能還給用戶界面的設(shè)計流程帶來提升。下面我們就來具體介紹其中出現(xiàn)的各項調(diào)整。

Size Classes

Size classes負(fù)責(zé)定義布局方案所使用的canvas尺寸。這些類允許大家允許開發(fā)人員指定應(yīng)用程序的用戶界面如何根據(jù)視圖控制器的變化而交付可用顯示范圍。在Size Classes的幫助下,我們就能夠構(gòu)建起一款具備統(tǒng)一顯示模板的應(yīng)用程序。相比之下,過去開發(fā)人員需要設(shè)計兩款彼此獨(dú)立的顯示模板,一套面向iPad、另一套則面向iPhone。

一個Size Class(尺寸類)能夠定義顯示區(qū)域內(nèi)的一項相對數(shù)量,例如顯示高度(即垂直維度)或者顯示寬度(即橫向維度)。目前Xcode提供兩種尺寸類,分別為compact(緊湊)與regular(常規(guī))。舉例來說,一臺iPhone在縱向顯示模式下寬度緊湊但高度常規(guī)。而iPad則在縱向與橫向顯示模式下的寬度與高度皆為常規(guī)水平。

但大家應(yīng)該會注意到,尺寸類并不一定非要與某臺設(shè)備的某種顯示模式相映射。舉例來講,一臺iPad能夠僅使用屏幕中的一小塊區(qū)域來提供類似于iPhone布局風(fēng)格的視圖(即橫向緊湊而縱向常規(guī)的尺寸類),同時也可以使用平板設(shè)備大尺寸屏幕所固有的天然風(fēng)格布局(即橫向常規(guī)而且縱向同樣常規(guī)的尺寸類)。

大家需要利用Interface Builder canvas底部接近布局工具欄處的Size Classes控制機(jī)制對尺寸類進(jìn)行調(diào)整。Interface Builder在起始狀態(tài)下提供any(任意)寬度與any(任意)高度的尺寸類設(shè)置,我們可以根據(jù)不同設(shè)備的實際屏幕尺寸及橫向/縱向顯示模式在其中擺放各類用戶界面組件并固定其位置。接下來,當(dāng)可用屏幕尺寸發(fā)生改變時,大家則利用另一個不同的尺寸類對用戶界面內(nèi)的組件位置加以更新,從而提供更適合當(dāng)前需要的布局效果。

自適應(yīng)過渡類型

Xcode 6所提供的自適應(yīng)過渡類型機(jī)制更適合與新的自適應(yīng)布局配合使用,這是因為這些自適應(yīng)類型能夠根據(jù)自身運(yùn)行所處的環(huán)境提供多種不同的視圖方案。舉例來說,在iPad上以Split View(分區(qū)視圖)方式使用Show Detail(顯示細(xì)節(jié)),那么Detail就會被取代; 但在iPhone上,同樣的操作則會將Detail推送至Master處。一部分舊有過渡類型,例如push以及modal,現(xiàn)在已經(jīng)遭到棄用。

實時渲染

Interface Builder canvas在交互能力方面要遠(yuǎn)勝過此前版本。過去,大家必須實際運(yùn)行自己的應(yīng)用程序才能對相關(guān)自定義對象、自定義字體以及組件位置的變更情況進(jìn)行查看。而現(xiàn)在,我們完全可以通過Interface Builder的字體拾取器選擇自定義字體,并將其直接顯示在Interface Builder canvas當(dāng)中。

大家甚至能夠創(chuàng)建出自定義對象并在Interface Builder canvas之內(nèi)對它們加以渲染。要實現(xiàn)這一目標(biāo),我們需要創(chuàng)建一套自定義框架,將自己的自定義類添加到該目標(biāo)當(dāng)中、并利用@IBDesignable標(biāo)記(也就是Objective-C中的 IB_DESIGNABLE)對該類進(jìn)行標(biāo)。這樣一來,Interface Builder就會意識到這是一個能夠在canvas當(dāng)中顯示自定義內(nèi)容的類。

除了能夠在Interface Builder當(dāng)中查看自定義對象之外,大家現(xiàn)在還可以利用@IBInspectable標(biāo)記對屬性加以標(biāo)注、從而使它們出現(xiàn)在Interface Builder的檢查菜單當(dāng)中。在這里,我們可以對上述屬于進(jìn)行編輯、正如對視圖內(nèi)其它屬性進(jìn)行編輯一樣。換言之,現(xiàn)在我們不必對某個類進(jìn)行可設(shè)計標(biāo)注,即可使其成為一項可檢查屬性。

大家還能夠以純代碼形式指定設(shè)計時間。舉例來說,我們可以利用這種方式將示例數(shù)據(jù)預(yù)先填充到視圖當(dāng)中,從而更為準(zhǔn)確地感受界面觀感。要實現(xiàn)這一點,大家需要重寫prepareForInterfaceBuilder方法。除此之外,我們也可以利用#if TARGET_INTERFACE_BUILDER將選定代碼添加或者移出最終Interface Builder渲染效果視圖。

Preview Editor

Preview Editor現(xiàn)在允許大家對不同模擬設(shè)備上的多套預(yù)覽圖進(jìn)行逐一查看。除了能夠直接觀察應(yīng)用程序在不同設(shè)備上的運(yùn)行效果之外,大家還可以通過設(shè)置變更每種設(shè)備的縱向或者橫向顯示模式。在這項新功能的幫助下,我們可以更為便捷地在不同設(shè)備及其顯示模式下對應(yīng)用程序的用戶界面加以預(yù)覽,而又不必真正將其投付運(yùn)行。

3. 游戲開發(fā)

蘋果公司在Xcode 6與iOS 8當(dāng)中加入了新的游戲技術(shù),分別名為SceneKit與Metal。SceneKit之前就已經(jīng)在OS X平臺上發(fā)揮作用,其實質(zhì)是一套3D場景渲染工具。而Metal則是一套框架,能夠被用于創(chuàng)建經(jīng)過高度優(yōu)化的圖形渲染及計算任務(wù)——這是因為它能夠以低損耗方式與A7及A8 GPU相對接。

SpriteKit也已經(jīng)在多個層面實現(xiàn)了改進(jìn),其中包括每像素物理平衡、物理區(qū)域、通用運(yùn)動性與限制性、材質(zhì)、光照以及陰影等等。

SpriteKit中的另一大重要新功能則是SpriteKit Level Editor,它允許我們以直觀方式組建場景。正如大家可以無需編寫任何代碼就在Interface Builder當(dāng)中創(chuàng)建用戶界面一樣,SpriteKit Level Editor能幫助我們以同樣的方式輕松打造出SpriteKit游戲。

4. OS X開發(fā)

Storyboard

Storyboard現(xiàn)在也被引入了OS X開發(fā)流程。正如在iOS開發(fā)環(huán)境中一樣,Storyboard允許我們建立自己的視圖布局并將這些視圖與多種類型各異的過渡動畫結(jié)合起來。不過截至撰稿之日時,一部分功能——包括Storyboard在內(nèi)——依然無法在Xocde(6.0.1)中被用于OS X開發(fā),相信等到OS X Yosemite版本發(fā)布時情況會得到改觀。

手勢識別

手勢識別功能現(xiàn)在已經(jīng)可用于AppKit,而且其具體使用方式與iOS應(yīng)用開發(fā)流程完全一致。大家可以在Interface Builder當(dāng)中的Object Library(對象庫)當(dāng)中查看可用的手勢操作類型。

5. 本地化

本地化功能在Xcode 6中的運(yùn)作方式與此前版本存在較大差別。現(xiàn)在大家可以將自己的全部本地化內(nèi)容導(dǎo)出至XLIFF當(dāng)中——這是一套業(yè)界標(biāo)準(zhǔn),通過大量翻譯服務(wù)作為實現(xiàn)手段。當(dāng)我們獲取到翻譯結(jié)果后,即可將其導(dǎo)入、而Xcode將把新內(nèi)容合并到原有項目當(dāng)中。順帶一提,大家應(yīng)該為自己應(yīng)用程序所支持的每一種語言創(chuàng)建一個與之對應(yīng)的XLIFF文件。

大家現(xiàn)在能夠在無需通過設(shè)置對設(shè)備或者模擬器的本地選項進(jìn)行變更的前提下,直接預(yù)覽全部本地化內(nèi)容。要實現(xiàn)這一點,我們選擇Product 〉Scheme 〉Edit Scheme,而后選擇Run并點擊Options標(biāo)簽。這時大家就可以從Application Language菜單中選擇自己需要的語言項目了。Xcode還提供Double Length Pseudolanguage項目,這樣即使還沒有添加過任何其它語言、大家也仍然能夠借此實現(xiàn)測試。在運(yùn)行應(yīng)用程序之后,我們即可查看到對應(yīng)的本地化內(nèi)容。

再有,我們也可以直接查看本地化內(nèi)容而無需實際運(yùn)行自己的應(yīng)用程序。要實現(xiàn)這一點,大家需要利用Preview Editor在應(yīng)用程序所支持的不同語言之間進(jìn)行切換。默認(rèn)語言會顯示在編輯器的右下角位置,當(dāng)我們對其進(jìn)行點擊后、即可看到一份包含各可用語言的列表。再次強(qiáng)調(diào),如果要在不添加語言的前提下進(jìn)行測試,大家需要使用Double Length Pseudolanguage機(jī)制。

6. iOS模擬器

命名設(shè)備

Xcode 6現(xiàn)在提供模擬器命名功能,這樣開發(fā)人員就能夠以“iPhone 5s”這樣的名稱來區(qū)分特定設(shè)備,而不再像過去那樣使用通用型名稱——例如64位iPhone Retina。

模擬器尺寸可調(diào)節(jié)

現(xiàn)在大家已經(jīng)可以從可調(diào)節(jié)尺寸iPhone與可調(diào)節(jié)尺寸iPad當(dāng)中選擇自己需要的設(shè)備類型。這兩套方案允許我們自行指定模擬器的寬度、高度以及屏幕尺寸。通過這種方式,大家能夠更輕松地測試自己的應(yīng)用程序在蘋果現(xiàn)有設(shè)備以及將來可能后續(xù)推出的設(shè)備上的運(yùn)行效果,而用不著為每種設(shè)備下載不同的模擬器方案。

模擬器自定義配置

在新的iOS模擬器當(dāng)中,大家可以將數(shù)據(jù)與配置設(shè)定結(jié)合在一起。具體而言,針對某款應(yīng)用程序的特定版本運(yùn)行一套配置方案及其相關(guān)數(shù)據(jù),再針對其它版本運(yùn)行另一套配置方案及其相關(guān)數(shù)據(jù)。這意味著大家可以模擬多位用戶在設(shè)備上的使用感受。每一位用戶都擁有屬于自己的獨(dú)立數(shù)據(jù)及配置方案。

7. HomeKit附件模擬器

HomeKit框架允許大家的應(yīng)用程序與用戶家中的其它接入附件進(jìn)行通信并加以控制。在目前的Xcode 6 beta版本當(dāng)中,HomeKit附件模擬器已經(jīng)作為固有組成部分存在、但尚屬于Xcode內(nèi)Hardware I/O Tools的功能之一。大家可以點擊此處從iOS Dev Center中下載該框架。

8. 調(diào)試

視圖調(diào)試工具

Xcode 6提供的實時視圖調(diào)試功能可以大大簡化應(yīng)用程序用戶界面的調(diào)試流程。現(xiàn)在開發(fā)人員可以暫停正在運(yùn)行當(dāng)中的應(yīng)用程序,并以3D視圖模式對當(dāng)前界面加以剖析。視圖調(diào)試工具能夠顯示當(dāng)前視圖層級以及Auto Layout設(shè)定。當(dāng)大家選擇一套視圖時,即可以在檢查工具內(nèi)檢查其屬性或者跳轉(zhuǎn)到輔助編輯器內(nèi)的對應(yīng)代碼處。有了這種強(qiáng)大的支持,大家就可以解決很多以往令人頭痛的難題——例如Auto Layout沖突、查看一套視圖為何會隱藏或者收起等。

要啟動實時視圖調(diào)試工具,我們首先需要啟動自己的應(yīng)用程序、而后點擊調(diào)試工具欄上的Debug View Hierarchy(調(diào)試視圖層級)按鈕。

這時我們的應(yīng)用程序會暫停運(yùn)行,而整套用戶界面將以3D可視化方式呈現(xiàn)在大家面前。我們可以拖動canvas中的任意位置來對視圖進(jìn)行旋轉(zhuǎn)。

大家可以利用canvas下方的各個按鈕在多種視圖狀態(tài)之間進(jìn)行切換。

從左至右各個按鈕依次為:

  • 顯示收起內(nèi)容: 這個選項用于隱藏或者顯示選定視圖內(nèi)被收起的內(nèi)容。
  • 顯示約束: 這一選項能夠顯示選定視圖內(nèi)的Auto Layout約束機(jī)制。
  • 重置視圖區(qū): 這一選項會將canvas重置為其默認(rèn)狀態(tài)。
  • 調(diào)整視圖模式: 這項模式允許大家選擇自己以怎樣的方式對視圖進(jìn)行查看。大家可以選擇只查看視圖邊框、視圖內(nèi)容或者二者同時顯示。
  • 縮小、實際尺寸、放大: 允許大家對視圖的大小進(jìn)行調(diào)整。

Quick Look

Quick Look(快速查看)最初出現(xiàn)于Xcode 5版本當(dāng)中,其作用在于幫助大家在調(diào)試過程中查看特定對象的內(nèi)容。Quick Look支持多種常見對象類型,其中包括圖像、貝塞爾曲線以及地圖位置等等。

在Xcode 6當(dāng)中,這項功能在改進(jìn)之后能夠支持兩種新的對象類型,分別為視圖(UIView與NSView)與自定義對象。要讓Quick Look能夠識別自定義對象,大家需要將debugQuickLookObject方法添加到自定義類當(dāng)中。

經(jīng)過強(qiáng)化的隊列調(diào)試機(jī)制

調(diào)試向?qū)涗洸@示最近執(zhí)行過的塊以及隊列塊。大家可以利用它來查看自己的隊列塊位于何處,同時檢查執(zhí)行中的具體設(shè)置信息。大家可以通過在Debug > Debug Workflow 〉 Always Show Pending Blocks in Queues菜單選項中將其選定來啟用塊調(diào)試功能。

調(diào)試計量器

調(diào)試計量器的作用是在調(diào)試過程中提供與應(yīng)用程序資源使用情況相關(guān)的各類信息。Xcode 6對計量器進(jìn)行了升級,現(xiàn)在其能夠以圖形方式對新的Metal框架以及用于支持Cloud與CloudKit內(nèi)文檔的iCloud進(jìn)行分析。

除了上述改進(jìn)之外,Xcode 6還引入了兩款全新調(diào)試計量器,分別針對網(wǎng)絡(luò)與磁盤活動。

網(wǎng)絡(luò)活動計量器旨在顯示我們的應(yīng)用程序發(fā)出與接收到的數(shù)據(jù)量,同時提供一套開放連接列表。大家可以通過查看歷史時間記錄來監(jiān)控網(wǎng)絡(luò)使用情況,幫助自身找到何時及為何出現(xiàn)網(wǎng)絡(luò)使用率峰值或者發(fā)生網(wǎng)絡(luò)故障。

磁盤活動計量器則用于顯示應(yīng)用程序磁盤讀取與寫入操作的實時信息。它還能夠提供所有打開文件的相關(guān)信息。磁盤I/O活動以歷史時間表的方式交付,大家可以借此實現(xiàn)監(jiān)控工作。

9. 資產(chǎn)目錄

資產(chǎn)目錄現(xiàn)在支持尺寸類。這意味著大家已經(jīng)能夠輕松為不同的尺寸類提供特殊的圖像素材,從而保證自己的用戶界面具備常規(guī)與緊湊兩種高度及寬度設(shè)計效果。

原先的資產(chǎn)目錄只支持PNG圖像,但在Xcode 6中,新版本已經(jīng)能夠支持JPEG以及PDF矢量圖像兩種新格式。

10. 啟動圖像

大家可以利用XIB或者storyboard作為自己的應(yīng)用程序啟動圖像。操作系統(tǒng)會為我們的應(yīng)用程序生成必要的啟動圖像。有了這項功能,大家再也不必為啟動圖像提供獨(dú)立的資產(chǎn),同時也能夠在Interface Builder當(dāng)中對其進(jìn)行設(shè)計。

要將XIB或者storyboard設(shè)定為自己的應(yīng)用程序啟動圖像,我們需要選擇Project Navigator中的對應(yīng)項目并從目標(biāo)列表中為其選擇目標(biāo)。在General標(biāo)簽之下,選定App Icons and Launch Images選項并從菜單標(biāo)簽Launch Screen File當(dāng)中選擇正確的文件。

11. 測試

異步測試

XCTest框架當(dāng)中也添加了多種新型API,用于實現(xiàn)對異步代碼的測試工作。這項功能是通過預(yù)期對象,也就是XCTestExpectation實現(xiàn)的,其作用是描述預(yù)期事件。XCTestCase當(dāng)中包含一種新型API,其始終在等待預(yù)期的滿足條件并會為其設(shè)定超時時間。當(dāng)所有事件都被切實執(zhí)行或者達(dá)到超時時間之后,完成處理程序就會被調(diào)用。需要強(qiáng)調(diào)的是,該API能夠在同一時間等等多個異步事件。大家現(xiàn)在可以更輕松地對系統(tǒng)中以異步方式執(zhí)行的交互關(guān)系進(jìn)行測試,例如文件I/O以及網(wǎng)絡(luò)請求等等。

性能檢測

經(jīng)過強(qiáng)化的XCTest框架現(xiàn)在能夠?qū)?yīng)用程序中各組成部分的性能進(jìn)行量化。Xcode負(fù)責(zé)運(yùn)行性能測試并允許大家定義一套基準(zhǔn)性能指標(biāo)。每一項后續(xù)測試都會與基準(zhǔn)性能進(jìn)行比對,并顯示隨時間推移而產(chǎn)生的變化情況,最終通過高亮顯示問題區(qū)域來提醒大家可能由所提交代碼引發(fā)的性能衰減。如果平均性能指標(biāo)與基準(zhǔn)水平存在明顯差異,則意味著性能測試失敗。對于開發(fā)人員來說,是一套對應(yīng)用程序性能下降進(jìn)行檢測的理想方案。

剖面測試

隨著性能測試機(jī)制的引入,現(xiàn)在我們已經(jīng)有能力在Instruments當(dāng)中進(jìn)行剖面測試。大家可以為剖面選擇一項或者一組測試套件,從而通過對Instruments的進(jìn)一步調(diào)查及分析來了解測試為何會出現(xiàn)失敗,最終找出導(dǎo)致性能衰退的根源。

12. Instruments

Instruments的用戶界面同樣經(jīng)過了更新。在新的模板選擇方案當(dāng)中,大家可以選擇自己的設(shè)備、目標(biāo)以及剖面分析流程的起始點。

我們可以看到一款名為Counters的全新模板,它與Events相結(jié)合能夠?qū)Ω鱾€獨(dú)立CPU事件進(jìn)行深度探究與審視。大家甚至可以指定用于測量事件聚合乃至比率等對象的公式。

在Xcode 6當(dāng)中,Instruments還提供對Swift的支持、大家也能夠利用它對應(yīng)用程序擴(kuò)展進(jìn)行配置。Instruments也提供對模擬器配置的支持,并將配置方案作為設(shè)備本身進(jìn)行處理,這就大大簡化了在模擬器中對進(jìn)程的啟動或者附加機(jī)制。

總結(jié)

蘋果公司仍在不斷改善其開發(fā)者工具,而這也是Xcode在每個主要版本中都致力于實現(xiàn)的目標(biāo)。Xcode 6相對于其前代方案更進(jìn)一步,力圖為開發(fā)人員提供足以提升工作流程并使整個開發(fā)過程更加順暢的相關(guān)工具。

原文鏈接:

http://code.tutsplus.com/articles/getting-up-to-speed-with-xcode-6--cms-22287

原文標(biāo)題:Getting Up to Speed With Xcode 6

核子可樂譯

責(zé)任編輯:閆佳明 來源: 51CTO
相關(guān)推薦

2020-11-17 08:43:20

ElasticSear

2013-11-19 12:53:33

OA信息化

2022-08-19 07:13:45

SQL方法編程

2015-03-30 09:32:15

XcodeiOS應(yīng)用程序

2011-07-25 15:42:58

XML

2011-05-11 10:39:51

XcodeiOS

2018-04-24 10:05:13

Docker工具交付

2013-07-25 15:19:23

iOS開發(fā)學(xué)習(xí)Xcode打包framiOS開發(fā)

2009-09-08 17:45:13

Ophone Widg

2021-06-24 09:32:00

鴻蒙HarmonyOS應(yīng)用

2017-03-06 11:02:59

產(chǎn)品軟件Power Desig

2017-10-25 11:42:32

macOS操作界面

2011-07-26 13:58:17

LINQ

2020-03-02 10:30:45

阿里互聯(lián)網(wǎng)技術(shù)

2020-03-02 15:27:28

阿里新人項目

2014-08-19 10:44:57

iOSXCode插件

2012-09-20 09:21:37

Xcode 4.5 SiOS 6

2022-08-21 07:17:16

LinkerdKubernetes服務(wù)網(wǎng)格

2011-07-07 09:20:30

Xcode

2021-12-10 08:13:02

MatplotlibpythonAPI
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本不卡一区 | 久久久久国产一区二区三区 | 久久精品二区 | 亚洲成人99 | 日本久久黄色 | 91精品国产综合久久久久久丝袜 | 欧美国产在线一区 | 一区二区三区欧美 | 日本一区二区不卡 | 二区在线视频 | 国产亚洲一区二区三区 | 国产在线一区二区三区 | av资源网站 | 国产婷婷色一区二区三区 | 欧美国产视频 | 久久99精品久久 | 欧美精品99| 国产精品96久久久久久 | 浴室洗澡偷拍一区二区 | 日本一本视频 | 国产精品永久久久久久久www | 久久精品欧美一区二区三区麻豆 | 免费看a | 影音先锋中文在线 | 久久精品亚洲一区二区三区浴池 | 韩三级在线观看 | 日韩高清一区 | 久久久久久国产 | 黄色av网站免费看 | 狠狠干美女| 日本精品一区二区在线观看 | 一区二区三区亚洲视频 | 久草在线中文888 | 欧美成人高清视频 | 免费中文字幕 | 久久久精品一区 | 成人日批视频 | 69热视频在线观看 | 国产性色视频 | 欧美精品一区在线发布 | 永久av|