I have a gesture recognizer that looks like this:
@objc func handleTap(_ sender: UITapGestureRecognizer) {
var currentImage = sender.view
print(currentImage)
}
And prints out this:
Optional(<UIImageView: 0x7ff72601ddd0; frame = (0 0; 414 414); opaque = NO; gestureRecognizers = <NSArray: 0x600000b541e0>; layer = <CALayer: 0x6000005be0c0>>)
How do I get the value of UIImageView
in sender.view
?
P.S.
The code that calls the tap recognizer looks like this:
var tap = UITapGestureRecognizer()
override func viewDidLoad() {
super.viewDidLoad()
tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.handleTap(_:)))
tap.numberOfTapsRequired = 1
tap.numberOfTouchesRequired = 1
imageView.addGestureRecognizer(tap)
imageView.isUserInteractionEnabled = true
}
You can use
if let currentImage = sender.view as? UIImageView {
}
OR directly if 100 % sure
let currentImage = sender.view as! UIImageView
OR
guard let currentImage = sender.view as? UIImageView else { return }
/// then use unwrapped currentImage