这个问题已经在这里有了答案:

我有2个UIImageView和一个tapGestureRecognizer。

 override func viewDidLoad() {
        // Do any additional setup after loading the view.

        super.viewDidLoad()

        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(cameraTapped(tapGestureRecognizer:)))

        cameraUIImageView.isUserInteractionEnabled = true
        cameraUIImageView.addGestureRecognizer(tapGestureRecognizer)

        plus1UIImageView.isUserInteractionEnabled = true
        plus1UIImageView.addGestureRecognizer(tapGestureRecognizer)
//        


    }

我只能点击第二个UIImageView,即plus1UIImageView。

为什么?

#1楼 票数:4 已采纳

UIGestureRecognizer必须仅与单个视图一起使用。 您正在两个视图中使用同一对象。 尝试这个。

override func viewDidLoad() {
    // Do any additional setup after loading the view.

    super.viewDidLoad()

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(cameraTapped(tapGestureRecognizer:)))

    cameraUIImageView.isUserInteractionEnabled = true
    cameraUIImageView.addGestureRecognizer(tapGestureRecognizer)


    let tapGestureRecognizer2 = UITapGestureRecognizer(target: self, action: #selector(cameraTapped(tapGestureRecognizer:)))

    plus1UIImageView.isUserInteractionEnabled = true
    plus1UIImageView.addGestureRecognizer(tapGestureRecognizer2)        
}

#2楼 票数:1

您只能将手势识别器添加到一个视图,因此,当将其添加到第二个视图时,它将被从第一个视图中删除。 在这里更深入地回答:

您可以将UIGestureRecognizer附加到多个视图吗?

#3楼 票数:0

正如大家所言,您只能将手势识别器添加到一个视图。 尽管如果两个图像视图都在同一超级视图中,则可以向其超级视图添加点击手势并访问其子视图。 您可以使用hitTest:方法检查点击的子视图并引用点击的图像视图。 在这里检查我以前的回答。 如果您有任何疑问,请告诉我。

  ask by John translate from so

未解决问题?本站智能推荐:

2回复

如何使用Tap Gesture从UIImageView呈现UIImagePickerController

我希望视图加载默认图像,然后让用户点击该图像以从照片库中选择另一个。 我正在这样做,但是点击手势不起作用,我在做什么错?
1回复

处理stackviews上的多个轻击手势

我有三个要添加轻击手势的stackview,这是我的代码,但是我不得不一次又一次地复制相同的代码,冷,您向我展示了一种更好的方法吗? 非常感谢
1回复

UIImageView点按手势无法识别。 用户交互已启用

我有一个容器视图作为输入附件视图,在其中,我添加了一个带有上载图像的简单UIImageView。 我尝试将“ Tap Gesture Recognizer”添加到图像视图,但是它似乎没有触发给定的事件。 启用了用户交互。 这是代码:
2回复

如何以轻击手势传递UIImage [重复]

这个问题已经在这里有了答案: 通过选择器为UItapgestureRecognizer传递额外的参数 3个答案 问题os以不起作用的手势传递图像,我想以点击手势传递图像,并且该图像用于其他目的。 该功能以轻击手势调用。 我想使用该图像..请提供解决方
2回复

UIImageView无法识别我的点击事件[重复]

这个问题已经在这里有了答案: 在Swift中检测UIImageView Touch 3个答案 我有一个像这样创建的UIImageView : 但是由于某种原因,当我单击它时它不会调用test函数。似乎我已经尝试了所有方法,但是它不起作用。 有什么建议吗?
3回复

滚动视图内的多个imageview上的轻击手势不触发事件,只有第一个imageview轻击手势有效吗?

方案是我有一个imageview,它已添加到一个滚动视图中,然后在每个imageview上添加了手势,但只有第一个imageview触发事件。 尝试过以下方法: 1.创建imageview扩展 2.在循环中添加了轻按手势(在滚动视图中添加了imageview的方式与添加tap
2回复

有没有办法让两个轻击手势识别器具有不同的轻击次数[重复]

这个问题已经在这里有了答案: UITapGestureRecognizer-单击和双击 9个答案 在我的应用程序中,我需要根据用户点击图像的次数来在点击手势上运行不同的功能。 我有一个轻击手势识别器,需要轻按1次。 我的第二个轻击手势识别器需要2次轻击。
1回复

为什么iOS中的点击手势识别器的界面生成器操作无法触发? [重复]

这个问题已经在这里有了答案 : 7个月前关闭。 我们可以将Tap Gesture添加到UILabel吗? (1个答案) 在Xcode的