我有一个分页UIScrollView
,每个页面只有一个UIImageView
和一个视图。我想添加一个关于View上显示的Image的描述,我希望能够通过点击UIImageView
来显示/隐藏View。
我尝试了几种方法来添加GestureRecognizer
,但它似乎没有用。下面的代码是我的页面创建的地方。随着Slide1和幻灯片2显示2种不同的方式,我试图添加GestureRecognizer
。
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(showOrHide))
@objc func showOrHide(){
print("tapped")
for slide in slides{
slide.labelView.isHidden = true
}
}
func createSlides() -> [Slide] {
print("creating Slides")
let slide1:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide1.imageView.image = UIImage(named: "img1.jpg")
slide1.imageView.isUserInteractionEnabled = true
slide1.tapGestureRecogizer = UITapGestureRecognizer(target: self, action: #selector(showOrHide))
let slide2:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide2.imageView.image = UIImage(named: "img2.jpg")
slide2.imageView.isUserInteractionEnabled = true
slide2.imageView.addGestureRecognizer(tapGesture)
我认为我误解了这些页面是如何创建的,我希望有人可以帮助我。
谢谢!
tapGesture
中创建createSlides
作为局部变量。更新的代码:
func createSlides() -> [Slide] {
print("creating Slides")
let slide1 = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide1.imageView.image = UIImage(named: "img1.jpg")
slide1.imageView.isUserInteractionEnabled = true
var tapGesture = UITapGestureRecognizer(target: self, action: #selector(showOrHide))
slide1.imageView.addGestureRecognizer(tapGesture)
let slide2 = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide
slide2.imageView.image = UIImage(named: "img2.jpg")
slide2.imageView.isUserInteractionEnabled = true
tapGesture = UITapGestureRecognizer(target: self, action: #selector(showOrHide))
slide2.imageView.addGestureRecognizer(tapGesture)