简体   繁体   English

swift:UIImageView 上的手势识别器不起作用

[英]swift: gesture recognizer on UIImageView does not work

my viewcontroller contains a view into which another viewcontroller is being ebedded(in the storyboard).我的视图控制器包含一个视图,另一个视图控制器正在嵌入其中(在情节提要中)。 This viewcontroller contains a scrollview.此视图控制器包含一个滚动视图。 When loaded i set up the scrollView like this:加载后,我像这样设置滚动视图:

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() {
    //...
}

but the openImage() never gets called when i tap on the first image.但是当我点击第一张图片时,openImage() 永远不会被调用。 Am i missing anything?我错过了什么吗?

isUserInteractionEnabled is false by default, so try isUserInteractionEnabled默认为false ,所以试试

slide1.imageView.isUserInteractionEnabled = true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM