swift : 循环添加创建imageView并添加手势点击事件的问题(非交互开关)

1.` /* 添加图片 /

    //创建图片视图
    for i in 0 ..< Int(arrayCount) {

        let imgView = UIImageView()
        imgView.frame = CGRect(x: CGFloat(Float(i)) * adSCView.frame.width,
                             y: 0,
                             width: adSCView.frame.width,
                             height: adSCView.frame.height - 25)
        
        /** 下载图片 */
        let imgUrl = NSURL(string: self.programmeList[i].head_img)
        let data = NSData(contentsOfURL: imgUrl!)

        imgView.image = UIImage(data: data!)
        
        //开交互
        imgView.userInteractionEnabled = true
       let singleTap = UIGestureRecognizer(target: self, action: #selector(singleTapAction))
        
        imgView.addGestureRecognizer(singleTap)
        adSCView.addSubview(imgView)
    }`
    
        func singleTapAction {
    print("点击了图")
}
    
  问题是 : 点击图片没有响应,真机运行手势点击也没有响应?
  
阅读 4.9k
2 个回答

手势初始化错了,用下面的方法初始化。
UIGestureRecognizer 是虚类,需要使用具体的子类进行处理。

let singleTap = UITapGestureRecognizer(target: self, action: #selector(singleTapAction(_:)))
     

通过下面的方式获取点击的view

func singleTapAction(tap:UITapGestureRecognizer) {
    print("\(tap.view)")
}



相关手势类可以在classes 看到

反正一个图片要点击,我肯定用 button 去做
自带 addTarget 比较简单

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题