如果表格视图中没有单元格,就像新用户注册聊天应用程序一样,我不仅仅希望表格视图为空,就像我想填写评论“go add user or friend”或者在屏幕中间添加按钮将用户带到另一个视图控制器以搜索朋友 所有我想知道在哪里使用“if”语句以及它将如何,然后我会做其余的
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return users.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "searchCell", for: indexPath) as! SearchCell
let user = users[indexPath.row]
cell.user = user
cell.delegate = self as? SearchTableViewCellDelegate
return cell
}
答案 0 :(得分:0)
如果users.count
== 0,那么
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { ... }
永远不会被召唤!因此,您可以在viewDidLoad
方法中添加一项检查,以查看users
是否为空。如果是,您可以添加包含所需信息的子视图。
答案 1 :(得分:0)
您可以使用内部具有通用视图的自定义tableview单元格,并创建两个自定义视图。根据您的需要,您可以投射一个或另一个视图。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var numberOfCells = 1
if users.count > 1 {
numberOfCells = users.count
}
return numberOfCells
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) as! CustomCell
if users.count == 0 {
cell.genericView = CustomView1 as! CustomView1
//More code if needed
} else {
cell.genericView = CustomView2 as! CustomView2
//More code if needed
}
return cell
}
答案 2 :(得分:0)
试试这个
override func viewDidLoad() {
super.viewDidLoad()
if users.isEmpty{
//No cell in table view
}
else{
//Cell in table view
}
}
答案 3 :(得分:0)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if users.count == 0{
tableView.backgroundView = your custom view whatever you want to show here like : button..
return 0
}
tableView.backgroundView = nil
return users.count
}
您可以尝试使用此代码,我希望它能按您的意愿工作......