【Swift】ImageViewにタップアクションを追加
完成図
解説
ImageViewにButtonのようなタップアクションを追加するには、
- ImageViewのisUserIntaractionEnabledをtrueにする(StoryBoardからも変更可)
- ImageViewにUI部品のTapGestureRecognizerを追加
- TapGestureRecognizerを@IBActionで紐付け
- タップ時に実行したい処理を@IBAction内に記述
コードでTapGestureRecognizerを実装する方法もあるのだが、なぜか実装できない。
(viewDidLoad内に記述されているコード)
ソースコード
import UIKit class addTapGesture: UIViewController,UIGestureRecognizerDelegate { @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() // //tapGestureのインスタンス // let gesture = UIGestureRecognizer(target: self, action: #selector(addTapGesture.alert(_:))) // //tapGestureのデリゲート // gesture.delegate = self // //imageview全体にtapGestureを追加 // self.imageView.addGestureRecognizer(gesture) //ImageViewのタップ認識をONにする imageView.isUserInteractionEnabled = true } @IBAction func imageTapGesture(_ sender: Any) { //アラートで通知 let alert = UIAlertController(title: "TapGestureが作動しました", message: "タップされたよ", preferredStyle: .alert) let dismiss = UIAlertAction(title: "OK", style: .cancel, handler: nil) alert.addAction(dismiss) self.present(alert, animated: true, completion: nil) } }