点击手势仅响应上次查看
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
只能添加到一个视图。因此,当您将它添加到另一个时,它只会从之前的视图中删除自己。
我可以建议两个选项:
- 将识别器添加到父视图。在这种情况下,它是
UIScrollView
- 或者创建更多识别器(每个视图一个)并使用相同的目标和操作。
点击 UITapGestureRecognizer
只能附加到单个视图,因此只有最后一个视图有响应。
您需要为每个要附加到的 setView 创建一个新的手势识别器。
我在下面的代码中添加了几个视图:
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
只能添加到一个视图。因此,当您将它添加到另一个时,它只会从之前的视图中删除自己。
我可以建议两个选项:
- 将识别器添加到父视图。在这种情况下,它是
UIScrollView
- 或者创建更多识别器(每个视图一个)并使用相同的目标和操作。
点击 UITapGestureRecognizer
只能附加到单个视图,因此只有最后一个视图有响应。
您需要为每个要附加到的 setView 创建一个新的手势识别器。