簡體   English   中英

在分頁ScrollView中將TapGesture添加到ImageView

[英]Adding TapGesture to ImageViews in paging ScrollView

我有一個分頁的UIScrollView ,每個頁面只有一個UIImageView和一個View。 我想添加對在View上顯示的Image的描述,我希望能夠通過點擊UIImageView來顯示/隱藏View。

我嘗試了幾種添加GestureRecognizer ,但是它似乎不起作用。 下面的代碼是創建我的頁面的地方。 在Slide1和Slide 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)

我認為我對這些頁面的創建方式有誤解,希望有人能幫助我。

謝謝!

  1. 創建tapGesture作為內部的局部變量createSlides
  2. 每個視圖都需要有自己的手勢識別器。 您可以共享選擇器,但不能共享手勢。

更新的代碼:

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM