如何在点击UITableViewCell类中的UIImageView时打开新屏幕?

时间:2017-01-18 21:50:48

标签: ios swift uitableview uiimageview uigesturerecognizer

我将TableViewCell放在它自己的名为VersionCellVC的类中。

我的UIImageView完全掩盖了细胞;所以用户别无选择,只能点击UIImageView,而不是TableViewCell。

我想执行一个segue或呈现一个vc,我已经创建了手势识别器及其调用的函数。但是,由于我在UITableViewCell的自定义子类中,系统告诉我我不允许使用@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger", @data_valmsg_for="partial_name" }) @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control", @id="partial_name" } }) present(vc:animate:complete)函数,因为它们不是UITableViewCell类的成员。

如何在不将UIImageView更改为UIButton的情况下解决此问题?

1 个答案:

答案 0 :(得分:0)

这样的事情(在包含tableview的viewcontroller中)?

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell

    cell.myImageView?.isUserInteractionEnabled = true
    cell.myImageView?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageViewTapped(imageView:))))

    return cell
}

func imageViewTapped(imageView: UIImageView) {
    if let indexPath = tableView.indexPathForRow(at: imageView.convert(.zero, to: tableView)) {
        print("user tapped imageview at indexPath \(indexPath)")
    }
}