点击手势仅响应上次查看

Tap gesture only responds to last view

我在下面的代码中添加了几个视图:

    for var i=0;i<sets.count;i++ {
        setView=UIView(frame: CGRectMake(0,y,400,65))
        x=20

        for var c=0;c<sets[i].count;c++ {
            imageView=UIImageView(frame: CGRectMake(x,0,60,60))
            dieFaces=types[sets[i][c]] as! NSArray
            file="\(dieFaces![0]).png"
            print(file)
            imageView!.image=UIImage(named: file)
            setView!.addSubview(imageView!)
            x+=60
        }
        setView!.tag=i
        setView!.addGestureRecognizer(tap)
        scrollView.addSubview(setView!)
        y+=66
    }

只有最后添加的视图响应点击。我做错了什么?

UIGestureRecognizer 只能添加到一个视图。因此,当您将它添加到另一个时,它只会从之前的视图中删除自己。

我可以建议两个选项:

  1. 将识别器添加到父视图。在这种情况下,它是 UIScrollView
  2. 或者创建更多识别器(每个视图一个)并使用相同的目标和操作。

点击 UITapGestureRecognizer 只能附加到单个视图,因此只有最后一个视图有响应。 您需要为每个要附加到的 setView 创建一个新的手势识别器。