轻击手势有问题

时间:2016-02-22 18:26:46

标签: ios swift

我在一个扩展UIImageView的类中的UITableViewCell上有一个点按手势。这段代码应该可行,我不明白为什么不这样做。我唯一能做的就是“目标”应该是什么 - 它应该是profileImage,还是事物所在的整体ViewController?

@IBOutlet weak var profileImage: UIImageView!    

var vc: TweetsViewController? = nil

override func awakeFromNib() {
    super.awakeFromNib()
    let tapGester = UITapGestureRecognizer(target: vc, action: Selector("handleTapGester:"))
    tapGester.delegate = self
    profileImage.addGestureRecognizer(tapGester)
}

func handleTapGester(tapGesture: UITapGestureRecognizer) {
    print("*******hi*******")
    vc?.performSegueWithIdentifier("showProfile", sender: nil)
}

为了记录,因为这似乎是一个相关的错误,我在表格单元格加载时初始化vc。

2 个答案:

答案 0 :(得分:0)

为什么不在视图中添加点击手势识别器,然后在调用查询indexPathForRowAtPoint时找出正在点击的单元格?

如果您知道单元格,则可以确定是否正在点击UIImage,并从那里调用performSegueWithIdentifier。

如果它点击了你不感兴趣的单元格,请让它通过,并通过在识别器上调用cancelsTouchesInView来处理。

答案 1 :(得分:0)

目标应该是处理点击手势的对象,handleTapGester函数应该在您指定为目标的对象类中,而不是在UITableViewCell子类内。

您还需要在UIImageView上启用用户交互:

imageView.userInteractionEnabled = true