如何在 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+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告