一个VC中有两个表视图

时间:2018-09-03 11:23:41

标签: swift uitableview uiviewcontroller swift4

我想从一个视图控制器显示两个(或更多)表视图。我的意思是同时显示 ,例如彼此并排显示或彼此并排显示。我能想到的唯一方法是使用子视图控制器。有更好或更简单的方法吗?

感谢您的评论。

3 个答案:

答案 0 :(得分:1)

是的,您当然可以这样使用:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
{
    if tableView == firstTableView
    {
            let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell1", for: indexPath)
            cell.textLabel?.text = "Section \(indexPath.section) Row \(indexPath.row)"
            return cell
    }
    else if (tableView == secondTableView)
    {
            let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell2", for: indexPath)
            cell.textLabel?.text = "Section \(indexPath.section) Row \(indexPath.row)"
            return cell
    }
    else
    {
        return UITableViewCell()
    }
}

类似于其他tableview委托方法,您应该为每个表添加条件

答案 1 :(得分:0)

如果您的用例是要有两个单独滚动的表视图,那么您只需在xib中添加两个表视图,分配数据源和委托并每天调用它即可。

如果您的用例是在页面上显示两种类型的信息,建议您仅使用一个表格视图并处理要手动显示的内容。

如果您需要更多帮助,请告诉我。

答案 2 :(得分:0)

使用切换条件


func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath)-> UITableViewCell {

    let cell = UITableViewCell()
    switch tableView {
    case firsttableView:
        let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell
        cell.label1.text = "Zaid"
        cell.label2.text = "Ahamd"
        return cell
    case secondTableView:
        let cell = tableView.dequeueReusableCell(withIdentifier: "SecondTableViewCell", for: indexPath) as! SecondTableViewCell
        cell.labelText.text = "ZaidAfzalMughal"
        return cell
    default:
        print("Something wrong")
    }
    return cell

}