Как реализовать UITapGestureRecognizer в моем приложении

Я довольно новичок в программировании и Objective C. Мне было интересно, как сделать приложение с пустым экраном и таймером, который идет на одну минуту. Вы должны нажимать так быстро, как можете, и до тех пор, пока можете. Мне было интересно, как реализовать UITapGestureRecognizer в моем коде.

Это пошаговое руководство по внедрению распознавателей жестов в вашем классе:

  1. Сопоставьте свой класс с протоколом UIGestureRecognizerDelegate .

  2. Выполните активацию распознавателя жестов. Например, чтобы создать экземпляр UITapGestureRecognizer , мы сделаем следующее:

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

    Здесь действие – это селектор, который будет обрабатывать жест. Здесь наш селектор handleTapFrom будет выглядеть примерно так:

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

    Аргументом для селектора является распознаватель жестов. Мы можем использовать этот распознаватель жестов для доступа к его свойствам, например, мы можем найти состояние распознавателя жестов, например UIGestureRecognizerStateBegan , UIGestureRecognizerStateEnded и т. Д.

  3. Установите требуемые свойства на созданный экземпляр распознавателя жестов. Например, для UITapGestureRecognizer мы можем установить свойства numberOfTapsRequired и numberOfTouchesRequired .

  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 [gestureRecognizer release]; 

Пример в 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") } } 
Interesting Posts
Давайте будем гением компьютера.