如何将UITapGestureRecognizer实现到我的应用程序中

我对编程和Objective C是相当新的。我想知道如何制作一个应用程序,它有一个空白的屏幕和一分钟的计时器。 你打算尽可能快地挖掘,只要你可以。 我想知道如何在我的代码中实现UITapGestureRecognizer

这是关于如何在您的课堂上实现手势识别器的一步一步指南:

  1. 使您的课程符合UIGestureRecognizerDelegate协议。

  2. 实例化手势识别器。 例如,要实例化一个UITapGestureRecognizer ,我们将执行:

     UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)]; 

    在这里,动作是将处理手势的select器。 在这里,我们的select器handleTapFrom看起来像这样:

     - (void) handleTapFrom: (UITapGestureRecognizer *)recognizer { //Code to handle the gesture } 

    select器的参数是手势识别器。 我们可以使用这个手势识别器来访问它的属性,例如,我们可以find手势识别器的状态,比如UIGestureRecognizerStateBeganUIGestureRecognizerStateEnded等等。

  3. 在实例化的手势识别器上设置所需的属性。 例如,对于UITapGestureRecognizer ,我们可以设置属性numberOfTapsRequirednumberOfTouchesRequired

  4. 将手势识别器添加到要检测手势的视图。 在我们的示例代码中(我将分享该代码供您参考),我们将使用以下代码行将手势识别器添加到imageView中:

     [self.imageView addGestureRecognizer:tapGestureRecognizer]; 
  5. 将手势识别器添加到视图后,设置手势识别器的委托,即处理所有手势识别器的类。 在我们的示例代码中,它将如下所示:

     tapGestureRecognizer.delegate = self; 

    注意:在将手势识别器添加到视图后分配委托。 否则,操作方法将不会被调用。

 UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; [self.tableView addGestureRecognizer:gestureRecognizer]; self.tableView.userInteractionEnabled = YES; gestureRecognizer.cancelsTouchesInView = NO; // this prevents the gesture recognizers to 'block' touches 

Swift中的示例:

 import UIKit class ViewController: UIViewController { @IBOutlet var myUIImageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "myUIImageViewTapped:") singleTap.numberOfTapsRequired = 1 singleTap.numberOfTouchesRequired = 1 self.myUIImageView.addGestureRecognizer(singleTap) self.myUIImageView.userInteractionEnabled = true } func myUIImageViewTapped(recognizer: UITapGestureRecognizer) { if(recognizer.state == UIGestureRecognizerState.Ended){ println("myUIImageView has been tapped by the user.") } } } 

如果您正在使用Swift(iOS9)和SpriteKit,请尝试以下操作。

 class GameScene: SKScene { override func didMoveToView(view: SKView) { let singleTap = UITapGestureRecognizer(target:self, action:#selector(self.handleSingleTap:)) singleTap.numberOfTouchesRequired = 1 singleTap.addTarget(self, action:#selector(self.handleSingleTap)) view.userInteractionEnabled = true view.addGestureRecognizer(singleTap) } //event handler func handleSingleTap(sender:UITapGestureRecognizer){ print("tapped") } }