如何在 iOS 應用中處理左右滑動手勢?


為了在 iOS 應用中處理手勢,我們將建立一個 Swift 應用,並透過示例演示。這可以透過兩種方式完成:使用故事板或以程式設計方式。

方法 1 - 使用故事板

首先,我們將從物件庫中拖動一個滑動識別器,並將其放置在我們想要新增滑動手勢的檢視控制器中。

然後單擊手勢,按住 control 並將其拖動到檢視控制器類中以建立其連線。

確保該操作的傳送者是 UISwipeGestureRecognizer,並且操作類似於以下內容:

@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) { }

現在,iOS 中的滑動手勢在其 direction 屬性中提供了所做滑動的方向。direction 是一個列舉,它具有以下可能的取值:

滑動手勢只能處理一個方向的滑動,即左、右、上或下。因此,我們需要建立另一個滑動識別器,並從屬性檢查器中將其方向設定為左。

還要記住將新識別器的操作連線到第一個識別器的操作。

現在,我們將使用此方法以及 direction 屬性來處理進行的滑動。除了從故事板中進行操作外,我們還可以以程式設計方式進行操作。

方法 2 - 以程式設計方式

要以程式設計方式建立手勢識別器,我們必須將以下程式碼新增到我們的 viewDidLoad 中。

var leftRecognizer = UISwipeGestureRecognizer(target: self, action:
#selector(swipeMade(_:)))
   leftRecognizer.direction = .left
var rightRecognizer = UISwipeGestureRecognizer(target: self, action:
#selector(swipeMade(_:)))
   rightRecognizer.direction = .right
   self.view.addGestureRecognizer(leftRecognizer)
   self.view.addGestureRecognizer(rightRecognizer)

在這兩種方法中,下面顯示的 swipeMade 操作應該保持不變。

@IBAction func swipeMade(_ sender: UISwipeGestureRecognizer) {
   if sender.direction == .left {
      print("left swipe made")
   }
   if sender.direction == .right {
      print("right swipe made")
   }
}

當我們在裝置上執行此應用程式時,我們看不到任何介面,因為我們的檢視此時為空,但是當我們左右滑動時,我們在控制檯中得到一個輸出,顯示在任一方向上都進行了滑動。

更新於:2020年6月30日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告