我在UIViewControllers
课程中有两个MyTableViewCell
被称为upVote和downVote。我添加了手势识别器,用于以编程方式点击这些视图但不确定如何获取单元格的父单元格或索引,以便我知道被点击的UIView
所在的单元格。如何获取单元格或函数handleTapUp和handleTapDown中的tapped cell的索引?
这是我的班级
class MyTableViewCell: UITableViewCell {
// MARK: Properties
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var upVote: UIImageView!
@IBOutlet weak var downVote: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
let tapUp = UITapGestureRecognizer(target: self, action: "handleTapUp:")
tapUp.delegate = self
upVote.addGestureRecognizer(tapUp)
let tapDown = UITapGestureRecognizer(target: self, action: "handleTapDown:")
tapDown.delegate = self
downVote.addGestureRecognizer(tapDown)
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
func handleTapUp(sender: UITapGestureRecognizer? = nil) {
// handling code
// get cell(index)
}
func handleTapDown(sender: UITapGestureRecognizer? = nil) {
// handling code
// get cell()
}
}
我已经尝试过self.superclass来获取uitableviewcell,当我打印调试描述时,它会说uitableviewcell,但每当我尝试对该对象做任何其他事情时,我都会得到一个错误,即self.superclass是AnyObject类型。我曾尝试以多种不同方式声明/转换self.superclass,但没有一种方法可行。这似乎应该很简单,所以希望我错过了一些东西。
答案 0 :(得分:1)
在customCellClass中声明一个变量: - var indexForCell:NSIndexPath!
在ViewControllers中deque
函数func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
中的单元格添加: -
cell.indexForCell = indexPath
现在访问班级功能中的indexForCell
: -
func handleTapUp(sender: UITapGestureRecognizer? = nil) {
let rowValue = indexForCell.row
}
func handleTapDown(sender: UITapGestureRecognizer? = nil) {
// handling code
// get cell()
}