我创建了类FooterView:UIView。我用它为我的 TableView 创建 FooterView。但我也想重用这个类来在我的其他 TableViews 中创建 FooterView。当我尝试向 setupElements () 函数添加一个参数以在那里传递所需的 TableView 并根据它更改标签文本时,但初始化程序不允许我这样做。我怎样才能做到这一点?此外,即使我删除了“private”,Swift 也不允许我直接调用 setupElements () 函数。我的代码:
class FooterView: UIView {
private var footerLabel: UILabel = {
...
}()
private func setupElements() {
addSubview(footerLabel)
...
footerLabel.text = "Table is empty"
}
override init(frame: CGRect) {
super.init(frame: frame)
setupElements()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
...
class TableViewController: UIViewController {
private lazy var footerView = FooterView()
private var array: [String] = []
func viewDidLoad() {
super.viewDidLoad()
setupTableView()
}
private func setupTableView() {
tableView.register(UINib(nibName: "Cell", bundle: nil), forCellReuseIdentifier: LibraryCell.reuseId)
if array.count == 0 {
tableView.tableFooterView = footerView
}
}
}
extension TableViewController: UITableViewDelegate, UITableViewDataSource {...}