UITableView Swift 2中的CustomCell

时间:2016-03-09 16:06:15

标签: ios swift uitableview custom-cell

我创建了一个UITableView,并希望动态创建单元格以保存名称,持续时间和价格等信息。

我有以下代码:

class MyCustomTableViewCell: UITableViewCell {
    @IBOutlet weak var price: UILabel!
}

class TableViewController: UITableViewController {
    var data = [["name1","amount1","duration1"],["Name2","amount2","duration2"],["name3","amount3","duration3"]]


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

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

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
   let cell = tableView.dequeueReusableCellWithIdentifier("MyCustomTableViewCell", forIndexPath: indexPath) as! MyCustomTableViewCell

    cell.textLabel?.text = "\(data[indexPath.row][0])"
    cell.detailTextLabel?.text = "\(data[indexPath.row][1])"
    cell.price.text = "\(data[indexPath.row][2])"
    return cell
}

}

我在故事板上收到以下错误:

从TableViewController到UILabel的价格出口无效。插座无法连接到重复的内容。

我理解错误的含义,但我认为MyCustomTableViewCell类意味着价格变量是动态的,因此不会尝试重复静态内容。

任何帮助将不胜感激:)

enter image description here

1 个答案:

答案 0 :(得分:0)

我从Askash那里得到了这个答案,但是我的代码似乎有点令人困惑,所以我想我的答案是在其他人遇到麻烦的时候发表的。

第1步。确保使用以下代码创建TableViewController,并确保在故事板上设置它:

class TableViewController: UITableViewController {
var data = [["name1","amount1","duration1"],["Name2","amount2","duration2"],["name3","amount3","duration3"]]


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

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


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
   let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TableViewCell

    cell.textLabel?.text = "\(data[indexPath.row][0])"
    cell.detailTextLabel?.text = "\(data[indexPath.row][2])"
    cell.price.text = "£\(data[indexPath.row][2])"
    return cell
}

}

在故事板上单击TableViewController,单击“显示身份检查器”并在类部分中粘贴“TableViewController”: enter image description here

第2步:创建一个新的TableViewCell类。 - Go File>新>文件...> IOS来源> Cocoa Touch Class>下一个 并创建一个带有UITableViewCell子类的TableViewCell类: enter image description here

第3步将TableViewCell分配给原型单元并设置恢复ID。

单击故事板中的原型单元格,单击显示“属性检查器”并在类部分和标识符类型“单元格”中粘贴“TableViewCell”: enter image description here

第4步在“TableViewCell”类中创建标签“Price”的插座。 (使用Ctrl +拖动)并将其命名为“price”。

TableViewCell中的代码应如下所示:

class TableViewCell:UITableViewCell {

@IBOutlet weak var price: UILabel!


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

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}

}