我试图删除或添加一个部分到表格视图。 我在笔尖中创建了一个自定义标题视图,并为其添加了一个标签和2个按钮。 问题是,我无法在删除或添加部分时连接点。 到目前为止,这是我的代码:
//Setup Header
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: headerID) as! CustomHeader
//Configure header...
header.addBtn.addTarget(self, action:Selector(("add")), for: .touchUpInside)
header.addBtn.tag = section
switch section {
case 0:
header.sectionLBL.text = "Detail 1"
case 1:
header.sectionLBL.text = "Detail 2"
default:
break
}
return header
}
@IBAction func addButton(sender: UIButton) {
//Add section code here...
}
@IBAction func delete(sender:UIButton){
//delete section code here...
}
我还试图找出如何使用提交方式来处理按钮:
//Setup Editing Style for table view
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
//Editing styles for deletion or insertion...
}
答案 0 :(得分:1)
您可以将故事板场景或NIB仅连接到其所属类。
1)向CustomHeader类添加协议,并确保将类分配给NIB:
protocol CustomHeaderButtonPressDelegate {
func didPressAdd()
func didPressDelete()
}
class CustomHeader: UIView {
var delegate:CustomHeaderButtonPressDelegate?
@IBAction func addButton(sender: UIButton) {
delegate?.didPressAdd()
}
@IBAction func delete(sender:UIButton){
delegate?.didPressDelete()
}
}
2)将NIB分配给IBs Inspector中的新班级
改变"班级"从UIView
到CustomHeader
。
3)将按钮目标连接到CustomHeader
s IBAction
s
4)以编程方式设置代理
class YourClass: UITableViewController, CustomHeaderButtonPressDelegate {
...
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: headerID) as! CustomHeader
header.delegate = self
...
}
...
func didPressAdd() {
//handlePress
}
func didPressDelete() {
//handlePress
}