我正在構建一個tableView,它在空的時候顯示一條消息。如何製作表格如果tableview爲空,則顯示消息並顯示消息?
我使用的是在這個問題上(Handling an empty UITableView. Print a friendly message)這使我的功能真正有用的答案:
func emptyMessage(message:String, viewController:UITableViewController) {
let VCSize = viewController.view.bounds.size
let messageLabel = UILabel(frame: CGRect(x:0, y:0, width:VCSize.width, height:VCSize.height))
messageLabel.text = message
messageLabel.textColor = UIColor.black
messageLabel.numberOfLines = 0
messageLabel.textAlignment = .center;
messageLabel.font = UIFont(name: "Futura", size: 15)
messageLabel.sizeToFit()
viewController.tableView.backgroundView = messageLabel;
viewController.tableView.separatorStyle = .none;
}
我可以在每一個表格視圖數據源這樣調用這個:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
if projects.count > 0 {
return 1
} else {
TableViewHelper.EmptyMessage("You don't have any projects yet.\nYou can create up to 10.", viewController: self)
return 0
}
}
哪些工作。但是我寧願不必重複實現它,而是在數據源中使用一個方法來定製tableview,並詢問您想要添加的消息。
我試過擴展TableView類或製作tableView的子類,但我認爲這不是解決方案。相反,我認爲解決方案是覆蓋UITableViewDataSource協議,但是我對協議和委派的瞭解還不夠。
我希望我在這個正確的軌道上。並澄清我可以做到這一點上面提到的方式,但我試圖覆蓋的功能,使我不重複自己的智能解決方案。
真的很感謝這一點,我看了看圖書館,這將工作。我沒有在問題中指定,所以你不會知道,但我沒有去圖書館的原因是我想了解我如何做到這一點的理論。我會嘗試閱讀github文件,看看他們是如何做到的。謝謝! –