[英]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.