如何获取UITableView的select方法中单元格中的点击接收元素?
class MyCell: UITableViewCell {
@IBOutlet weak var eventImageView: UIImageView!
@IBOutlet weak var contentTitleView: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var descriptionLabel: UILabel!
}
class SampleTableViewController: UITableViewController {
// ..
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// how to check if the tap was on eventImageView when the cell got tapped or on a label or on any other UI element?
}
}
我要寻找的是类似于JavaScript中的event.target
的东西,它提供了用户点击的UI元素,而不是跟踪数组中的每个UI元素。
答案 0 :(得分:0)
// Here I don't mention cellForRow and numberOfRow Method But in didselect method this way you can get your selected image Hope it helps you
class MyCell: UITableViewCell {
@IBOutlet weak var eventImageView: UIImageView!
}
class SampleTableViewController: UITableViewController {
var arrImages = [UIImage]()
override func viewDidLoad() {
super.viewDidLoad()
arrImages = ["passyourimages"]
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
arrImages[indexPath.row] // Here you get your selected image
// indexPath.row giving you index of selected cell and that index will be your array index and you got your selected image here !!
}
}
答案 1 :(得分:0)
This tutorial提供了解决方案。
基本思想是您覆盖hitTest:withEvent:
中的MyCell
,UIView
是tableViewCell
的子类。
此函数将计算您需要的hitTest:withEvent:
中最触摸的子视图。
但是然后,您对nil
的实现应返回tableViewCell
,它将触摸转移到didSelectRowAtIndexPath
,然后调用userInteractionEnabled
。
工作的一项要求是,将单元格内的true
子视图中的RecyclerView
设置为RecyclerView
。