2017-02-27 2 views
-2

UIViewにLabelを追加してコンセントを作成した後、UITapGestureRecognizerを使用して機能を追加しましたが、ラベルをタップまたはクリックすると機能が追加されました。ラベルテキストは変更されません。私は同様の質問を検索し、私は答えをも私が書いたことがあるが、まだラベルのテキストは変更されていません。 Swift 3.0で書かれたコード。UILabelにタップジェスチャーを追加できますか?

import UIKit 

class testingViewController: UIViewController { 

    @IBOutlet weak var testLabel: UILabel! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     let tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(showDatePicker)) 
     tap.numberOfTouchesRequired = 1 
     tap.numberOfTapsRequired = 1 
     testLabel.addGestureRecognizer(tap) 
     testLabel.isUserInteractionEnabled = true// after adding this it worked 
     // Do any additional setup after loading the view. 
    } 

    func showDatePicker(){ 
    print("testing") 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


    /* 
    // MARK: - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     // Get the new view controller using segue.destinationViewController. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

} 
+1

真のチェックユーザーとの対話にラベルのisUserInteractionEnabledフラグを設定する必要があります - ここで私が書いたコードです。 Duncan C – Krunal

+0

@KrunalBhavsarのuserInteractionがstoryBoardで有効になっていましたが、コードを追加したときにそれがうまくいきました。 – Ronit

+0

ラベルをラッピングする上で他のビュー(透過表示)があるかどうか確認してください。機密でない場合は、ソースコード(プロジェクト)を共有できますか? – Krunal

答えて

6

はいすることができますが、あなたはラベルの

+0

userInteractionはすでにストーリーボードで有効になっていましたが、testLabel.isUserInteractionEnabled = trueというコードを追加したとき、なぜそうですか? – Ronit

+1

わかりません。 IB(Interface Builder)でフラグを設定することも有効です。 –

+0

私はもう一度質問したことが分かりましたが、userInteractionがストーリーボードから有効になっていて、動作していないために尋ねました – Ronit

関連する問題