Доступ к значениям внутри знака <> - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть распознаватель жестов, который выглядит следующим образом:

@objc func handleTap(_ sender: UITapGestureRecognizer) {
    var currentImage = sender.view
    print(currentImage)

}

И распечатывает это:

Optional(<UIImageView: 0x7ff72601ddd0; frame = (0 0; 414 414); opaque = NO; gestureRecognizers = <NSArray: 0x600000b541e0>; layer = <CALayer: 0x6000005be0c0>>)

Как получить значение UIImageView в sender.view?

PS

Код, который вызывает распознавание касаний, выглядит следующим образом:

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
}

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать

if let  currentImage = sender.view as? UIImageView {

}

ИЛИ напрямую, если уверены на 100%

let  currentImage = sender.view as! UIImageView

ИЛИ

guard let currentImage = sender.view as? UIImageView else { return }
/// then use unwrapped currentImage
...