希望这对 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/