多个原型细胞 - 斯威夫特

时间:2015-04-23 15:29:14

标签: ios swift

我在创建多个原型单元时遇到问题...基本上我需要2个静态单元和1个原型单元,它们将根据数据输入添加新行。由于您无法创建静态表和原型表,因此我尝试使用3个原型单元格。使用下面的代码运行时,我的表中没有显示任何内容。它只显示一张空白表。

表视图控制器:

class NewTableViewController: UITableViewController,UITableViewDelegate, UITableViewDataSource {

var testData = [row1, row2, row3]

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

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


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if (section == 2){
        return testData.count
    }
    return 1
}

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

    var cell: CustomCell!

    if (indexPath.section == 0) {
        cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as!  CustomCell

        cell.myLabel.text = "Static Label"

    }else if (indexPath.section == 1) {
        cell = tableView.dequeueReusableCellWithIdentifier("addCell", forIndexPath: indexPath) as! CustomCell
        cell.addLabel.text = "Add New Data"

    }else if (indexPath.section == 2) {
        cell = tableView.dequeueReusableCellWithIdentifier("protoCell", forIndexPath: indexPath) as! CustomCell
        cell.protoLabel.text = "row \(indexPath.row)"
    }

    return cell;
 }
}

CustomCell:

class CustomCell: UITableViewCell {

  @IBOutlet weak var myLabel: UILabel!

  @IBOutlet weak var addLabel: UILabel!

  @IBOutlet weak var protoLabel: UILabel!
}

1 个答案:

答案 0 :(得分:1)

确保注册自定义单元格以在viewDidLoad中使用

var nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "customCell")

您也只有一个自定义单元格,因此您应该只在cellForRowAtIndexPath中使用一个重用标识符。