UILabelのタップイベントを処理する
UILabelのタップイベントを処理して、ラベルに表示する値をアラートダイアログで入力する方法です。
UIラベルのisUserInteractionEnabledをtrueにして、touchesEndedで処理します。
class ViewController: UIViewController { let timerLabelTag = 10 @IBOutlet weak var timerLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() timerLabel.tag = timerLabelTag timerLabel.isUserInteractionEnabled = true } override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { for touch: UITouch in touches { let tag = touch.view!.tag if (tag == timerLabelTag) { // アラートダイアログで入力する let alert = UIAlertController(title: "タイマー時間セットアップ", message: "時間(秒)を入力してください", preferredStyle: .alert) let saveAction = UIAlertAction(title: "セット", style: .default) { (action:UIAlertAction!) -> Void in let textField = alert.textFields![0] as UITextField timerLabel = textField.text! } } let cancelAction = UIAlertAction(title: "キャンセル", style: .default) { (action:UIAlertAction!) -> Void in } // UIAlertControllerにtextFieldを追加 alert.addTextField { (textField:UITextField!) -> Void in } alert.addAction(saveAction) alert.addAction(cancelAction) present(alert, animated: true, completion: nil) } } } }