如何将3个iOS表/节动态嵌套到一个?

时间:2016-08-01 17:30:16

标签: ios swift uitableview

我希望创建一个包含3个部分的UITableView(每个部分只显示一个居中的UILabel),每个部分中都有一个动态数量的单元格。第一个单元(MainCell)将具有图像视图和标签,最终的动态单元数(DetailCell)将具有基于MainCell的信息。修复的唯一信息是有3个部分。任何人都知道该怎么办?我可以将它们分成3个表,但如果可能的话,它们都会在一个表中。我尝试过使用分组表,但后来我不知道如何为每个MainCell配置不同数量的DetailCell。

我附上了一张图片,希望有助于解释我想要做的事情。

感谢任何帮助,谢谢!

Nested table

1 个答案:

答案 0 :(得分:0)

虽然我不了解您的数据来源,但您可以这样做:

class MyTableViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 3
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 7
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        var cell:UITableViewCell?

        if indexPath.row % 3 == 0
        {
            // this is a "MainCell"
            cell = tableView.dequeueReusableCellWithIdentifier("MainCell", forIndexPath: indexPath)

        }
        else
        {
            // this is a "DetailCell"
            cell = tableView.dequeueReusableCellWithIdentifier("DetailCell", forIndexPath: indexPath)
        }

        return cell!
    }

    override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("HeaderCell")

        return cell
    }
}

故事板将包含多个单元格类型:

Storyboard

结果如下:

App running