首页 文章

Swift 3 - 带有Tap Gesture的图像视图

提问于
浏览
4

我在使用我放在图像视图上的轻击手势时遇到问题 . 图像当前存储在资产中作为'ActionLiked',我已将图像视图设置为此图像 . 然后将其呈现为基于JSON动态的表视图(因此,对于放入JSON数组中的每个项目,它都会重复) . 我添加了敲击手势,每次点击它都打印出'TAPPED'然而,它似乎不能一直工作 - 表中有7个项目,点击手势将在1上工作,然后在下2个工作然后在第四个工作并重复该模式

第1项 - 工作项目2 - 没有工作项目3 - 没有工作项目4 - 工作项目5 - 没有工作项目6 - 没有工作项目7 - 工作

我在调试控制台中收到错误无法加载带有标识符的包中的笔尖引用的“”图像但是图像在每个图像上都正确显示而没有识别出点击手势?

4 回答

  • 0

    我最近遇到的问题与您的问题相似 . 我有很多图像,每当用户点击它们时,我都希望以相同的方式响应这些图像 . 经过一些实验,我清楚地知道每个图像都必须有自己的 UITapGestureRecognizer 实例 . 我最终使用这样的代码,这确保每个图像都响应被点击:

    for imageView in imageViews {
        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapResponse))
        imageView.addGestureRecognizer(tapGestureRecognizer)
        imageView.isUserInteractionEnabled = true
    }
    
  • 2

    以下代码可以帮助您更快地使用swift 3

    正如您所说,要检查tableview单元格上的图像点击,请完成以下代码:

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.connected(_:)))
    
        cell.yourImageView.isUserInteractionEnabled = true
        cell.yourImageView.tag = indexPath.row
        cell.yourImageView.addGestureRecognizer(tapGestureRecognizer)
    

    并将以下方法添加到ViewController中

    func connected(_ sender:AnyObject){
         print("you tap image number : \(sender.view.tag)")
    }
    
  • 7

    请检查 isUserInteractionEnabledisUserInteractionEnabledtrue

  • 21

    The idea is that you should create unique gesture recognizer for every UIImageView.

    let gestureRecognizerOne = UITapGestureRecognizer(target: self, action: #selector(tap))
    firstImageView.addGestureRecognizer(gestureRecognizerOne)
    
    let gestureRecognizerTwo = UITapGestureRecognizer(target: self, action: #selector(tap))
    secondImageView.addGestureRecognizer(gestureRecognizerTwo)
    

    但是我没有看到你的代码,所以,也许你应该在循环中创建它或类似的东西 .

相关问题