我创建了一个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类意味着价格变量是动态的,因此不会尝试重复静态内容。
任何帮助将不胜感激:)
答案 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”:
第2步:创建一个新的TableViewCell类。 - Go File>新>文件...> IOS来源> Cocoa Touch Class>下一个 并创建一个带有UITableViewCell子类的TableViewCell类:
第3步将TableViewCell分配给原型单元并设置恢复ID。
单击故事板中的原型单元格,单击显示“属性检查器”并在类部分和标识符类型“单元格”中粘贴“TableViewCell”:
第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)
}
}