精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

探索 SwiftUI 基本手勢

開發 前端
本篇是對 SwiftUI 基本手勢的總結。我們可以實現更多的交互使我們的 App 變得更生動。對于高級的使用,可以將手勢組合或者同時使用以做出響應,或者可以實現自己的自定義手勢。

[[400610]]

前言

在 SwiftUI 中,我們可以通過添加不同的交互來使我們的應用程序更具交互性,這些交互可以響應我們的點擊,點擊和滑動。

今天,我們將回顧SwiftUI基本手勢:

  • TapGesture
  • 長按手勢
  • 拖動手勢
  • 放大手勢
  • 旋轉手勢

TapGesture

輕擊手勢使我們能夠識別 View 上的一個或多個輕擊。我們有幾種方法可以添加點擊手勢。

第一個是直接使用 .onTapGesture 修飾符。

  1. Circle() 
  2.   .onTapGesture { 
  3.     // Respond to Tap Gesture  
  4.   } 

SwiftUI 文檔中使用的其他選項是通過創建手勢并將其配置為屬性,然后將其與 .gesture(_:include :) 修飾符一起使用。

注意: 為了執行某項操作或響應輕擊,我們需要使用 .onEnded 操作關閉,該操作在手勢結束時觸發。

  1. struct SingleTapGestureView: View { 
  2.   var singleTap: some Gesture { 
  3.       TapGesture() 
  4.           .onEnded { _ in 
  5.               // Respond to Tap Gesture 
  6.           } 
  7.   } 
  8.  
  9.   var body: some View { 
  10.       Circle() 
  11.           .gesture(singleTap) 
  12.   } 

實際上,我更喜歡第二種方法,因為這樣我們可以創建不同的手勢并通過我們的代碼重復使用它們。

因此,如果我們將代碼放在一起,就可以開始編寫類似的東西。

圖片
  1. struct TapGestureView: View { 
  2.     @State private var isAnimating = false 
  3.     @State private var tapped1x = 0 
  4.  
  5.     var singleTap: some Gesture { 
  6.         TapGesture() 
  7.             .onEnded { _ in 
  8.                 tapped1x += 1 
  9.  
  10.                 withAnimation(Animation.easeOut(duration: 0.5)) { 
  11.                     self.isAnimating = true 
  12.                 } 
  13.  
  14.                 DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { 
  15.                     self.isAnimating = false 
  16.                 } 
  17.             } 
  18.     } 
  19.  
  20.     var body: some View { 
  21.         VStack { 
  22.             Text("Tapped 1X: \(tapped1x) times"
  23.                 .font(.caption) 
  24.  
  25.             Circle() 
  26.                 .frame(width: 80, height: 80) 
  27.                 .foregroundColor(.orange) 
  28.                 .overlay( 
  29.                     Text("1X"
  30.                         .fontWeight(.medium) 
  31.                 ) 
  32.                 .background( 
  33.                     Circle() 
  34.                         .strokeBorder(Color.blue, lineWidth: 3) 
  35.                         .scaleEffect(isAnimating ? 1.5 : 1) 
  36.                         .opacity(isAnimating ? 0 : 1) 
  37.                 ) 
  38.                 .gesture(singleTap) 
  39.         } 
  40.     } 

類似地,我們只需使用 TapGesture(count:Int) 初始化程序就可以控制要響應的數量。

在這種情況下,您需要點擊3次才能觸發 .onEnded 操作關閉。

圖片
  1. struct TapGesture3xView: View { 
  2.     @State private var isAnimating = false 
  3.     @State private var tapped3x = 0 
  4.  
  5.     var multipleTap: some Gesture { 
  6.         TapGesture(count: 3) 
  7.             .onEnded { _ in 
  8.                 tapped3x += 1 
  9.  
  10.                 withAnimation(Animation.easeOut(duration: 0.5)) { 
  11.                     self.isAnimating = true 
  12.                 } 
  13.  
  14.                 DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { 
  15.                     self.isAnimating = false 
  16.                 } 
  17.             } 
  18.     } 
  19.  
  20.     var body: some View { 
  21.         VStack { 
  22.             Text("Tapped 3X: \(tapped3x) times"
  23.                 .font(.caption) 
  24.  
  25.             Circle() 
  26.                 .frame(width: 80, height: 80) 
  27.                 .foregroundColor(.orange) 
  28.                 .overlay( 
  29.                     Text("3X"
  30.                         .fontWeight(.medium) 
  31.                 ) 
  32.                 .background( 
  33.                     Circle() 
  34.                         .strokeBorder(Color.blue, lineWidth: 3) 
  35.                         .scaleEffect(isAnimating ? 1.5 : 1) 
  36.                         .opacity(isAnimating ? 0 : 1) 
  37.                 ) 
  38.                 .gesture(multipleTap) 
  39.         } 
  40.     } 

長按手勢

長按手勢可讓我們在用戶長按定義的時間后以及在用戶長按的時間內執行操作。

我們可以設置一個最小持續時間,以識別我們的長按手勢。可以在 LongPressGesture 初始化程序中進行設置。

  1. LongPressGesture(minimumDuration: 2) 

然后,我們可以使用 .updating 方法在長按期間執行操作,并使用 .onEnded 在識別到我們的手勢時執行操作。

在此示例中,我將在長按操作期間更新 Circle() 的大小和顏色,并且當識別出手勢時,我將顯示“文本已完成”。

另外,我在這里使用的是 GestureState 屬性包裝器,該包裝器在長按期間設置為 true ,在手勢結束時設置為 false 。我正在將此屬性包裝器用于示例動畫。

圖片
  1. struct LongPressGestureView: View { 
  2.     @GestureState private var isLongPressDetected = false 
  3.     @State private var isDone = false 
  4.  
  5.     var longPress: some Gesture { 
  6.         LongPressGesture(minimumDuration: 2) 
  7.             .updating($isLongPressDetected) { currentState, gestureState, transaction in 
  8.                 DispatchQueue.main.async { 
  9.                     isDone = false 
  10.                 } 
  11.                 gestureState = currentState 
  12.                 transaction.animation = Animation.easeIn(duration: 2) 
  13.             } 
  14.             .onEnded { done in 
  15.                 isDone = done 
  16.             } 
  17.     } 
  18.  
  19.     var body: some View { 
  20.         VStack { 
  21.             Spacer() 
  22.  
  23.             Circle() 
  24.                 .frame(width: 10, height: 10) 
  25.                 .foregroundColor(isLongPressDetected ? .orange : .primary
  26.                 .scaleEffect(CGSize( 
  27.                                 width: isLongPressDetected ? 10 : 1, 
  28.                                 height: isLongPressDetected ? 10 : 1)) 
  29.  
  30.             Spacer() 
  31.             if isLongPressDetected { 
  32.                 Text("Updating..."
  33.             } 
  34.  
  35.             if isDone { 
  36.                 Text("Done"
  37.             } 
  38.  
  39.             Spacer() 
  40.  
  41.             Text("Long Press 2 sec"
  42.                 .padding() 
  43.                 .background(isLongPressDetected ? Color.green : Color.orange) 
  44.                 .cornerRadius(16) 
  45.                 .gesture(longPress) 
  46.         } 
  47.     } 

 拖動手勢

拖動手勢允許我們在拖動視圖時執行操作。

我們可以利用并使用 .onChanged 和 .onEnded 關閉方法來執行某些操作。這兩種方法都為我們提供了出色的屬性 DragGesture.Value,該屬性存儲以下拖動動作信息:

location

predictedEndLocation

predictedEndTranslation

startLocation

time

translation

我們可以使用該屬性來創建可移動視圖。在當前示例中,我使用 .onChanged 方法更新 Circle() 位置坐標。

圖片
  1. struct DragGestureView: View { 
  2.     @State private var location: CGPoint = CGPoint(x: 100, y: 100) 
  3.  
  4.     var drag: some Gesture { 
  5.         DragGesture(minimumDistance: 1, coordinateSpace: .local
  6.             .onChanged { value in 
  7.                 location = value.location 
  8.             } 
  9.     } 
  10.  
  11.     var body: some View { 
  12.         Circle() 
  13.             .frame(width: 100, height: 100) 
  14.             .foregroundColor(.orange) 
  15.             .position(location) 
  16.             .gesture(drag) 
  17.     } 

在這里,添加了 .onEnded 方法,以在拖動結束后重置 Circle() 位置坐標。

圖片
  1. struct DragGestureView: View { 
  2.     @State private var location: CGPoint = CGPoint(x: 100, y: 100) 
  3.  
  4.     var drag: some Gesture { 
  5.         DragGesture(minimumDistance: 1, coordinateSpace: .local
  6.             .onChanged { value in 
  7.                 location = value.location 
  8.             } 
  9.             .onEnded { value in 
  10.                 withAnimation(.easeOut) { 
  11.                     location = CGPoint(x: 100, y: 100) 
  12.                 } 
  13.             } 
  14.     } 
  15.  
  16.     var body: some View { 
  17.         Circle() 
  18.             .frame(width: 100, height: 100) 
  19.             .foregroundColor(.orange) 
  20.             .position(location) 
  21.             .gesture(drag) 
  22.     } 

放大手勢

當我們在View上應用放大動作時,放大手勢允許做出一些動作。

在這里,還有 .onChanged 和 .onEnded 閉包,我們可以使用它們來在放大動作期間或結束時進行響應。作為屬性,接收到的是 CGFloat 的 MagnificationGesture.Value 。我們可以以此為例來更改視圖大小。

圖片
  1. struct MagnificationGestureView: View { 
  2.     @State var magnifiedValue: CGFloat = 1.0 
  3.  
  4.     var magnification: some Gesture { 
  5.         MagnificationGesture() 
  6.             .onChanged { value in 
  7.                 magnifiedValue = value 
  8.             } 
  9.             .onEnded { value in 
  10.                 magnifiedValue = 1.0 
  11.             } 
  12.     } 
  13.  
  14.     var body: some View { 
  15.         Circle() 
  16.             .frame(width: 100 * magnifiedValue, height: 100 * magnifiedValue) 
  17.             .foregroundColor(.orange) 
  18.             .gesture(magnification) 
  19.             .animation(.easeOut) 
  20.     } 

旋轉手勢

旋轉手勢允許旋轉視圖,并在旋轉過程中和旋轉結束時以某些動作做出響應。

它還為我們提供了 .onChanged 和 .onEnded 閉包,這些閉包為我們提供了 RotationGesture.Value,它表示手勢 Angle 值。我們可以使用該值旋轉視圖。

圖片
  1. struct RotationGestureView: View { 
  2.     @State private var angle = Angle(degrees: 0.0) 
  3.     @State private var backgroundAngle = Angle(degrees: 0.0) 
  4.  
  5.     var rotation: some Gesture { 
  6.         RotationGesture() 
  7.             .onChanged { angle in 
  8.                 self.angle = angle 
  9.             } 
  10.             .onEnded { angle in 
  11.                 withAnimation(Animation.spring()) { 
  12.                     self.backgroundAngle = angle 
  13.                 } 
  14.             } 
  15.     } 
  16.  
  17.     var body: some View { 
  18.         Rectangle() 
  19.             .frame(width: 150, height: 150, alignment: .center) 
  20.             .foregroundColor(.orange) 
  21.             .rotationEffect(self.angle) 
  22.             .gesture(rotation) 
  23.             .background( 
  24.                 Rectangle() 
  25.                     .shadow(color: .primary, radius: 10, x: 0.0, y: 0.01) 
  26.                     .foregroundColor(.secondary) 
  27.                     .rotationEffect(backgroundAngle) 
  28.             ) 
  29.     } 

總結

上面是對 SwiftUI 基本手勢的總結。我們可以實現更多的交互使我們的 App 變得更生動。

對于高級的使用,可以將手勢組合或者同時使用以做出響應,或者可以實現自己的自定義手勢。

 

責任編輯:姜華 來源: Swift 社區
相關推薦

2011-06-28 09:53:43

iPhone諾基亞N9

2015-07-22 10:34:59

手勢密碼源碼

2016-03-16 09:40:33

Windows 10觸控手勢微軟

2022-03-09 09:00:41

SwiftUI視圖生成器Swift

2022-06-20 09:01:50

SwiftUI狀態管理系統

2022-08-24 09:02:27

SwiftUIiOS

2022-02-18 09:04:22

動畫SwiftUI工具:

2022-03-01 09:01:56

SwiftUI動畫進階Canvas

2022-02-23 12:23:28

協議動畫SwiftUI

2013-07-18 18:14:26

UITableViewiOS長按手勢UILongPress

2022-05-17 12:25:59

物聯網智能建筑樓宇自控

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2010-09-28 15:09:10

2021-07-13 12:20:40

Core DataSwiftUIiOS

2023-12-29 09:01:10

SwiftUI空狀態Product?

2022-01-19 09:00:51

UI前端手機開發

2022-02-14 09:24:15

SwiftUI協議

2024-05-17 09:00:45

SwiftUIvisionOS

2023-11-20 09:55:34

音頻圖表SwiftUI

2022-12-19 09:02:04

深入布局協議HStack
點贊
收藏

51CTO技術棧公眾號

欧美丰满熟妇bbbbbb| 国产精品嫩草影院8vv8| 男人av在线| 久久资源在线| 精品国产欧美成人夜夜嗨| 九九热99视频| 91美女精品| 国产精品女人毛片| 国产精华一区| 最近中文字幕免费观看| 欧美激情五月| 在线精品高清中文字幕| av在线天堂网| 成人自拍视频网| 亚洲一区二区欧美激情| 先锋影音亚洲资源| 亚洲免费成人网| 日本欧美一区二区| 国内精品小视频在线观看| 国产黄色录像视频| 开心激情综合| 日韩午夜在线观看视频| 韩国一区二区av| 爱情岛亚洲播放路线| 国产精品久久久久久久午夜片 | 久久久国产成人| 国产麻豆精品久久| 精品人伦一区二区色婷婷| 狠狠躁狠狠躁视频专区| 蜜桃视频在线观看播放| 亚洲精品免费视频| 亚洲国产精品视频一区| 青春有你2免费观看完整版在线播放高清 | 欧美高清69hd| 午夜在线播放视频欧美| 欧美大片在线影院| 97精品在线播放| 欧美精品momsxxx| 日韩国产精品一区| 五月天丁香社区| 欧美.com| 日韩欧美精品在线| 天天干天天曰天天操| 久久91视频| 欧美影院午夜播放| 成年人视频在线免费| 极品av在线| 婷婷国产v国产偷v亚洲高清| 日本熟妇人妻xxxx| 欧美大片黄色| 一区二区三区精品在线| 老汉色影院首页| 久草免费在线| 亚洲欧美日韩小说| 裸体大乳女做爰69| 福利视频在线| 亚洲激情自拍视频| 97中文字幕在线| 青春草视频在线| 亚洲一区二区三区四区的| 男女裸体影院高潮| 日韩精品亚洲人成在线观看| 一区二区在线免费| 国产天堂视频在线观看| √最新版天堂资源网在线| 亚洲午夜私人影院| 全黄性性激高免费视频| 国产调教在线| 色激情天天射综合网| 国产v亚洲v天堂无码久久久| 日韩精品麻豆| 欧美丰满少妇xxxxx高潮对白| 伊人精品视频在线观看| 亚洲成人五区| 日韩精品在线电影| 亚洲区自拍偷拍| 天天揉久久久久亚洲精品| 欧美成人免费在线观看| 免费观看一级视频| 亚洲欧美卡通另类91av| 国产成人精品最新| 国产精品久久欧美久久一区| 国产高清一区日本| 久久国产精品高清| avav免费在线观看| 一区二区三区四区在线免费观看 | 日韩欧美中文字幕制服| 扒开伸进免费视频| 欧洲激情综合| 欧美日韩成人在线视频| 久久一区二区三区视频| 老司机午夜精品99久久| julia一区二区中文久久94| 先锋av资源站| 中文在线一区二区| 国产一级不卡视频| 国产69精品久久| 欧美变态tickle挠乳网站| 国产毛片久久久久久久| 综合天天久久| 日韩av大片免费看| www久久久com| 国产日产亚洲精品系列| 国产欧美久久久久| 成人黄色图片网站| 亚洲第一页中文字幕| 视频国产一区二区| 亚洲尤物精选| 91久久大香伊蕉在人线| 川上优的av在线一区二区| 一区二区三区在线视频观看58| 国模杨依粉嫩蝴蝶150p| 在线精品国产亚洲| 色噜噜国产精品视频一区二区| 日韩男人的天堂| 国产在线视频不卡二| 欧美系列一区| 操喷在线视频| 欧美一级理论性理论a| 一色道久久88加勒比一| 亚洲无毛电影| 91成人理论电影| 夜级特黄日本大片_在线| 狠狠躁夜夜躁久久躁别揉| 黑人巨大猛交丰满少妇| 97精品在线| 国产福利精品视频| 午夜视频在线免费播放| 亚洲午夜一区二区三区| 亚洲精品一二三四| 99精品视频在线观看免费播放| 国产成人精品久久二区二区91| 欧美综合视频在线| 一区二区三区美女| 天天干天天曰天天操| 国产精品97| 国产一区二区香蕉| 亚洲麻豆精品| 欧美日韩高清在线播放| 国产精品成人无码免费| 日韩中文字幕区一区有砖一区| 久久婷婷人人澡人人喊人人爽| 91在线三级| 亚洲成人久久一区| 久久久久久天堂| 国产精品亚洲午夜一区二区三区 | 亚洲自拍三区| yy6080久久伦理一区二区| 国产亚洲精品久久久久久牛牛 | 一级性生活免费视频| 日本视频一区二区三区| 日本视频精品一区| 91精品影视| 在线观看国产精品日韩av| 糖心vlog精品一区二区| 国产精品欧美极品| 红桃视频 国产| 午夜国产精品视频| 国产精品一区二区a| 9999热视频在线观看| 亚洲精品91美女久久久久久久| 精品91久久久| 国产亚洲综合在线| 污网站免费在线| 成人在线丰满少妇av| 成人免费福利视频| 美足av综合网| 亚洲欧美精品一区| 伊人22222| 亚洲激情图片一区| 天堂久久久久久| 视频在线在亚洲| 中文字幕一区二区三区最新| 日韩三级精品| 91精品国产高清久久久久久91| 免费人成在线观看网站| 欧美精品第1页| 国产精品99精品| 久久久亚洲欧洲日产国码αv| 最近中文字幕一区二区| 欧美日韩国产欧| 蜜桃传媒一区二区| 国产精品亚洲成在人线| 欧美国产日韩二区| 黄色av网站在线| 91麻豆精品91久久久久久清纯| 日本熟妇毛耸耸xxxxxx| 久久久不卡影院| 精品人妻一区二区三| 国产一区二区你懂的| 一区二区三区四区在线视频 | 精品一二线国产| 国产自产在线视频| 日韩av专区| 黄色99视频| 高清不卡一区| 国产99久久精品一区二区| caopen在线视频| 亚洲天堂一区二区三区| 国产视频一区二区三| 色婷婷综合激情| 久久久久99精品成人片试看| 久久久一区二区三区| 国产乱淫av片| 久久国产尿小便嘘嘘| 99精品人妻少妇一区二区 | 欧美www在线| 国产三级视频在线| 精品成人一区二区三区四区| 在线免费观看一区二区| 欧美日韩精品在线观看| 国产探花在线播放| 国产精品蜜臀av| xxx在线播放| 91在线观看高清| 精品国产免费久久久久久婷婷| 毛片av中文字幕一区二区| 日韩av综合在线观看| 欧美午夜免费影院| 亚洲第一在线综合在线| 亚洲视频分类| 国产在线资源一区| 久久九九精品视频| 国产日本欧美一区| 亚洲成人va| 国产999在线| 中文字幕在线视频久| 久久久久女教师免费一区| 二区三区在线观看| 久久久成人精品视频| 啊v视频在线| 国产午夜精品美女视频明星a级| 特级丰满少妇一级aaaa爱毛片| 欧美一区二区三区在线电影| 一级特黄aa大片| 在线观看av不卡| 无码人妻久久一区二区三区 | 久久久亚洲天堂| 人妖欧美1区| 欧美国产精品人人做人人爱| 污污片在线免费视频| 毛片精品免费在线观看| av在线下载| 欧美日韩国产成人在线| 日韩影视在线| 91精品国产色综合久久不卡98| 黑人精品视频| 久久免费高清视频| 暧暧视频在线免费观看| 91精品国产91久久久久久吃药 | 欧美性高跟鞋xxxxhd| 久草视频在线观| 一本大道av伊人久久综合| 一二三区免费视频| 91久久奴性调教| 中文字幕一二三四| 欧美美女一区二区三区| 国产免费一区二区三区最新不卡| 欧美一区二区久久| 韩国av电影在线观看| 亚洲成年人在线| 青青青草网站免费视频在线观看| 亚洲人成在线播放| 老司机在线永久免费观看| 欧美wwwxxxx| 欧美男男tv网站在线播放| 国产91精品久久久| 国产经典一区| 91在线色戒在线| 国产一区二区三区亚洲| 免费试看一区| 国产精品久久久久无码av| 菠萝蜜视频在线观看入口| 亚洲精品字幕| 欧美黄色性生活| 国产高清不卡一区二区| 在线观看国产三级| 国产精品美女一区二区三区| 破处女黄色一级片| 欧美日韩亚洲高清| 国产精品一区二区黑人巨大| 精品精品国产高清一毛片一天堂| 日韩精品123| www亚洲欧美| 乱馆动漫1~6集在线观看| 日本久久久久久久久久久| 99国内精品久久久久| 精品欧美国产| 亚洲视频电影在线| jizzjizzxxxx| 国产一区视频导航| 泷泽萝拉在线播放| 亚洲欧美日韩中文播放| 免费黄色av片| 欧美成人精品二区三区99精品| 韩国精品视频| 国内精品久久久久久久| 欧美亚洲人成在线| 久久久99国产精品免费| 亚洲国产不卡| 超碰av在线免费观看| 成人看片黄a免费看在线| 337人体粉嫩噜噜噜| 婷婷夜色潮精品综合在线| 国产三级小视频| 亚洲天堂男人的天堂| 97超碰免费在线| 成人在线中文字幕| 精品国产1区| 免费看又黄又无码的网站| 国产乱子伦视频一区二区三区| 一级片视频免费看| 亚洲成在人线在线播放| 99热这里只有精品1| 影音先锋日韩有码| 亚洲人体视频| 极品尤物一区二区三区| 欧美永久精品| 91福利免费观看| 日本一区二区三区高清不卡| 国产免费av一区| 亚洲电影免费观看高清完整版在线观看 | 国产精品乱码一区二区视频| 亚洲第一福利视频| 最爽无遮挡行房视频在线| 国产精品自在线| 精品国产一区二区三区av片| 91免费视频网站在线观看| 成人精品一区二区三区四区| 一起操在线播放| 3751色影院一区二区三区| 1024视频在线| 国产精品自在线| 久久亚洲在线| 蜜臀一区二区三区精品免费视频 | 久久夜色精品亚洲| 亚洲精品福利免费在线观看| 精品一性一色一乱农村| 91色视频在线观看| 亚洲91中文字幕无线码三区| 一区二区免费av| 亚洲乱码国产乱码精品精的特点| 一本色道久久综合亚洲| 日韩在线观看免费高清完整版| 青青草国产一区二区三区| 影音欧美亚洲| 国产一区欧美一区| 99精品久久久久| 欧美xxxx老人做受| 波多野结衣在线播放| 国产在线播放一区二区| 性欧美xxxx大乳国产app| av在线网站观看| 欧美日韩亚洲另类| 午夜不卡视频| 亚洲一区二区在线| 欧美午夜免费影院| 黄色av网址在线观看| 欧美视频一二三| www.在线视频.com| 成人午夜在线视频一区| 国产精品s色| 99久久国产精| 欧美日韩一区二区在线观看视频| 国产黄色在线免费观看| 都市激情久久久久久久久久久| 999亚洲国产精| 干b视频在线观看| wwwww在线观看免费视频| 亚洲人成在线播放网站岛国| 伊人精品一区二区三区| www.欧美精品| 亚洲网址在线观看| 69堂国产成人免费视频| 国产一级片在线播放| 国产精品影院在线观看| 久久精品一区二区不卡| 久草免费资源站| 日韩欧美精品中文字幕| √天堂资源地址在线官网| 1区1区3区4区产品乱码芒果精品| 影音先锋在线一区| 亚洲黄色免费视频| 欧美一区日本一区韩国一区| 超碰在线cao| 一区二区精品视频| 日本欧美不卡| 国产在线视频2019最新视频| 中文不卡在线| 熟女人妻在线视频| 欧美影院精品一区| 3d玉蒲团在线观看| 久久久久久99| 久久精品国产秦先生| 69精品久久久| 色妞欧美日韩在线| 加勒比久久高清| 天天综合网久久| 成人写真视频福利网| 91精品国产自产精品男人的天堂|