点击手势仅响应上一个视图

时间:2015-11-17 19:01:26

标签: ios swift uitapgesturerecognizer

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

    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
    }

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

2 个答案:

答案 0 :(得分:1)

UIGestureRecognizer只能添加到一个视图中。因此,当您将其添加到另一个时,它只会从上一个视图中删除它。

我可以提出两个选择:

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

答案 1 :(得分:1)

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