func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
var sectionHeaderView = NSBundle.mainBundle().loadNibNamed("PlanCellSectionHeader", owner: nil, options: nil).first as PlanCellSectionHeader!
sectionHeaderView.addBtn.addTarget(self, action: "didPressAdd:", forControlEvents: UIControlEvents.TouchUpInside)
return sectionHeaderView
}
func didPressAdd(sender:UIButton) {
var point = sender.convertPoint(CGPointZero, toView: self.tableView!)
var indexPath = self.tableView.indexPathForRowAtPoint(point)
//won't work
println("section = \(indexPath?.section)")
}
事实证明indexPath是nil,当使用添加到每个节头的标签时,我发现其他人说如果我们在运行时删除部分会崩溃,那么任何帮助吗?
答案 0 :(得分:1)
您可以在按钮类中使用tag
属性。这是实现这一目标的最简单方法,但可能不是最好的方法。
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
var sectionHeaderView = NSBundle.mainBundle().loadNibNamed("PlanCellSectionHeader", owner: nil, options: nil).first as PlanCellSectionHeader!
sectionHeaderView.addBtn.addTarget(self, action: "didPressAdd:", forControlEvents: UIControlEvents.TouchUpInside)
sectionHeaderView.addBtn.tag = section
return sectionHeaderView
}
func didPressAdd(sender:UIButton) {
println("section = \(sender.tag)")
}
我更喜欢为标题视图创建子类。然后,您可以按下按钮处理索引和操作。
class HeaderView: UIView {
var section: Int
@IBAction func buttPressed() {
println("section = \(section))
}
}