swift: распознаватель жестов в UIImageView не работает - PullRequest
0 голосов
/ 17 октября 2019

мой viewcontroller содержит представление, в которое добавляется другой viewcontroller (в раскадровке). Этот viewcontroller содержит вид прокрутки. После загрузки я настроил scrollView следующим образом:

override func viewDidLoad() {
    super.viewDidLoad()

    self.scrollView.delegate = self

    slides = self.getResultDetailImageSlides()
    setupSlideScrollView(slides: slides)

    self.pageControl.numberOfPages = slides.count
    self.pageControl.currentPage = 0
    view.bringSubview(toFront: self.pageControl)
}
func setupSlideScrollView(slides: [ResultDetailImageSlide]) {
    scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
    scrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)
    scrollView.isPagingEnabled = true

    for i in 0 ..< slides.count {
        slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
        scrollView.addSubview(slides[i])
    }
}
func getResultDetailImageSlides() -> [ResultDetailImageSlide] {
    let slide1: ResultDetailImageSlide = Bundle.main.loadNibNamed("ResultDetailImageSlide", owner: self, options: nil)?.first as! ResultDetailImageSlide
    slide1.imageView.image = UIImage(named: "ResultDetail_Placeholder_3D")
    slide1.imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.openImage)))

    let slide2: ResultDetailImageSlide = Bundle.main.loadNibNamed("ResultDetailImageSlide", owner: self, options: nil)?.first as! ResultDetailImageSlide
    slide2.imageView.image = UIImage(named: "ResultDetail_Placeholder")

    return [slide1, slide2]
}
@objc func openImage() {
    //...
}

, но openImage () никогда не вызывается, когда я нажимаю на первое изображение. Я что-то пропустил?

1 Ответ

2 голосов
/ 17 октября 2019

isUserInteractionEnabled по умолчанию false, поэтому попробуйте

slide1.imageView.isUserInteractionEnabled = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...