How do you make an UIImageView on the storyboard clickable (swift)

前端 未结 7 655
后悔当初
后悔当初 2020-12-13 02:39

I am new to swift (and Xcode development in general) and I was wondering how to make an ImageView on the storyboard clickable. What I\'m trying to do is make it so when its

7条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-13 03:08

    You can add tapGesture for that. Here is the code:

    class ViewController: UIViewController {
    
    @IBOutlet weak var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // create tap gesture recognizer
        let tapGesture = UITapGestureRecognizer(target: self, action: "imageTapped:")
    
        // add it to the image view;
        imageView.addGestureRecognizer(tapGesture)
        // make sure imageView can be interacted with by user
        imageView.userInteractionEnabled = true
    }
    
    func imageTapped(gesture: UIGestureRecognizer) {
        // if the tapped view is a UIImageView then set it to imageview
        if let imageView = gesture.view as? UIImageView {
            println("Image Tapped")
            //Here you can initiate your new ViewController
    
            }
        }
    }
    

    Swift 3.0

    class ViewController: UIViewController {
    
        @IBOutlet weak var imageView: UIImageView!
        override func viewDidLoad() {
            super.viewDidLoad()
            // create tap gesture recognizer
            let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.imageTapped(gesture:)))
    
            // add it to the image view;
            imageView.addGestureRecognizer(tapGesture)
            // make sure imageView can be interacted with by user
            imageView.isUserInteractionEnabled = true
        }
    
        func imageTapped(gesture: UIGestureRecognizer) {
            // if the tapped view is a UIImageView then set it to imageview
            if (gesture.view as? UIImageView) != nil {
                print("Image Tapped")
                //Here you can initiate your new ViewController
    
            }
        }
    }
    

    Swift 5.0

    class ViewController: UIViewController {
    
        @IBOutlet weak var imageView: UIImageView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // create tap gesture recognizer
            let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.imageTapped(gesture:)))
    
            // add it to the image view;
            imageView.addGestureRecognizer(tapGesture)
            // make sure imageView can be interacted with by user
            imageView.isUserInteractionEnabled = true
        }
    
        @objc func imageTapped(gesture: UIGestureRecognizer) {
            // if the tapped view is a UIImageView then set it to imageview
            if (gesture.view as? UIImageView) != nil {
                print("Image Tapped")
                //Here you can initiate your new ViewController
    
            }
        }
    }
    

提交回复
热议问题