如何通过“if”语句跟踪表视图中是否没有单元格

时间:2018-01-29 17:13:24

标签: ios swift uitableview cell

如果表格视图中没有单元格,就像新用户注册聊天应用程序一样,我不仅仅希望表格视图为空,就像我想填写评论“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
    }

4 个答案:

答案 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

}

您可以尝试使用此代码,我希望它能按您的意愿工作......