【Swift】Labelにタップイベントを追加する

出力結果

  

f:id:nekokichi_yos2:20181026121448p:plain

 

解説

 

・UserInterfaceEnabledを使い、Labelにタップイベントを追加

・必要なのは、①tag ②UserInterfaceEnabledの許可

・tagが設定されていないものは、基本的にViewを認識する

・画面全体にタップイベントを追加するUIGestureRecognaizerもどうぞ

nekokichi2yos2.hatenablog.com

 

ストーリーボード

 

f:id:nekokichi_yos2:20181026122125p:plain

f:id:nekokichi_yos2:20181026122140p:plain

 

ソースコード

 

import UIKit

class ViewController: UIViewController {
    
    //StoryBoard上で既に、①tag ②UserIntaractionEnabled、を設定している
    @IBOutlet weak var label: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //もし①と②をコードで設定するなら下記のように記述
//        label.isUserInteractionEnabled = true
//        label.tag = 1
        
    }
    
    override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesEnded(touches, with: event)
        
        //タップイベント時に実行
        for touch:UITouch in touches {
            
            //タップした箇所のtagを取得
            let tag = touch.view!.tag
            
            //tagをswitchで比較
            switch tag {
                
            //Labelをタップしたら
            case 1: print("Labelがタップされました")
                
            //Label以外をタップしたら
            default:
                print("Label以外がタップされました")
            }
            
        }
        
    }
    
}