【Swift】UIGestureRecognizerで画面全体にタップイベントを追加する

出力結果 

f:id:nekokichi_yos2:20181026114905p:plain

 

解説

 

・UIGestureRecognizerをViewに実装し、画面タップ時の処理を実装する

・出力結果には、画面を4回タップしたので、4つの"タップされました"が表示されている

 

※注意

・LabelやButtonなどのUIにではなく、view(画面全体)にタップアクションを追加したことをお忘れなく。

 

・LabelやImageViewにタップイベントを追加するコードはこちら。

nekokichi2yos2.hatenablog.com

 

ストーリーボード

 

f:id:nekokichi_yos2:20181026114930p:plain

 

ソースコード

 

import UIKit

class ViewController: UIViewController,UIGestureRecognizerDelegate {
    
    @IBOutlet weak var label: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //UIGestureのインスタンス
        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapped(_:)))
        
        //UIGestureのデリゲート
        tapGesture.delegate = self
        
        //viewに追加
        self.view.addGestureRecognizer(tapGesture)
        
    }

    //Labelをタップした時の処理
    @objc func tapped(_ sender: UITapGestureRecognizer) {
        
        //タップ直後に中身を実行
        if sender.state == .ended {
            
            //Labelをタップしたら、デバッグエリアに"タップされました"を表示
            print("タップされました")
            
        }
        
    }

}