我必须在tableview页脚中使用复选框,检查时我必须显示文本字段。
在我的ViewController中 @IBOutlet弱var resultTable:UITableView!
在FooterCell中
import UIKit
class FooterCell: UITableViewCell
{
@IBOutlet weak var textFld: UITextField!
@IBOutlet weak var checkBtn: UIButton!
@IBOutlet weak var submitBtn: UIButton!
override func awakeFromNib()
{
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool)
{
super.setSelected(selected, animated: animated)
}
}
这是我在课堂上的代码
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView?
{
let footer = resultTable.dequeueReusableCell(withIdentifier: "footer") as? FooterCell
footer!.textFld.isHidden = true
footer!.submitBtn.isHidden = true
footer!.checkBtn.addTarget(self, action: #selector(checkBoxSelection(_:)), for: .touchUpInside)
return footer?.contentView
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
{
return 55
}
@objc func checkBoxSelection(_ sender:UIButton)
{
let footer = resultTable.dequeueReusableCell(withIdentifier: "footer") as? FooterCell
if askBool
{
footer!.checkBtn.setImage(UIImage(named:"CheckBox"), for: .normal)
footer!.textFld.isHidden = false
footer!.submitBtn.isHidden = false
askBool = false
} else
{
footer!.checkBtn.setImage(UIImage(named:"UnCheckBox"), for: .normal)
footer!.textFld.isHidden = true
footer!.submitBtn.isHidden = true
askBool = true
}
}
答案 0 :(得分:0)
如果您想在footerView中添加功能,则需要使用协议来检测用户已选中或未选中按钮。
1)首先,创建一个协议
protocol FooterCheckable: class {
func isChecked()
}
2)然后在页脚视图类中,执行内部复选框动作。
class TableViewFooter: UITableViewHeaderFooterView {
weak var delegate: FooterCheckable?
@IBAction func approveOrRejectBtnPressed(_ sender: UIButton) {
delegate?.isChecked()
}
}
3)在视图控制器内部,您需要使用以下代码注册tableViewFooter
tableView.register(UINib(nibName: yourFooterViewString, bundle: nil),
forHeaderFooterViewReuseIdentifier: identifier)
4)然后,再次在View Controller类中,您需要使用以下代码来使用标头并将委托提供给您的视图控制器
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
if let footer = tableView.dequeueReusableHeaderFooterView(withIdentifier: identifier) as? TableViewFooter {
footer.delegate = self
return footer
}
return nil
}
5)最后,您需要确保需要在视图控制器内部遵循协议,并在选中标题按钮时执行所需的操作。
extension ViewController: FooterCheckable {
func isChecked() {
}
}
这是一个幸福的结局,希望对您有用。