ios - 在 Swift 中,检测 UITableViewCell 部分中的点击

标签 ios uitableview swift

希望这对 iOS/Swift 开发人员来说是一个简单的问题。我有一个 UITableViewCell,左边是文本,右边是图像。如果用户点击该行,我会做一些事情并且工作正常。但是,如果用户点击图像,我需要做其他事情。我看了一下 Detect Tap on UIImageView within UITableViewCell但我并没有很好地将 Objective-C 翻译成 Swift。

我的假设是我需要在我的子类 UITableViewCell 中做这样的事情:

@IBOutlet var handsfreeImage: UIImageView!

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)

    let handsfreeTap = UITapGestureRecognizer(target: handsfreeImage, action:Selector("handsfreeTap:"))
}

func handsfreeTap(recognizer: UITapGestureRecognizer) {
    println("The handsfree image was tapped")
}

但是,这是行不通的。关于我做错了什么的想法?

最佳答案

您没有正确使用 UITapGestureRecognizer

target 应该是实现处理程序方法的类。

应该是这样

let handsfreeTap = UITapGestureRecognizer(target: self, action:Selector("handsfreeTap:"))

然后您需要将手势识别器实际添加到 View 中。

handsfreeImage.addGestureRecognizer(handsfreeTap)

这应该都有效。它可能不会完全按照您想要的方式运行,因为它会缺少一些功能,例如长按和点按高亮显示。如果这些是您关心的事情,我建议您简单地使用带有 image 背景的 UIButton 而不是使用 UIImageView,因为它处理所有无需您在内部进行处理。

关于ios - 在 Swift 中,检测 UITableViewCell 部分中的点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28546567/

相关文章:

ios - "loaded the "XXX "nib but the view outlet was not set."- 再次

ios - 在表格 View 单元格中添加各种内容类型

iPhone UITableView 单元格保持选中状态

单选多行上的 Swift TableView ProgressView 指示器

objective-c - 街道地址验证

ios - 调整 super View 大小和重新布局 subview 的正确方法(在自动布局中)?

iphone - 如何无条件地将绿色添加图标放在插入行上

ios - 在可变时间间隔后更改表格 View 中突出显示的单元格

ios - 删除具有重复键的对象

ios - 如何在 UITable 中获取 UIButton 或 UILabel 的位置?