我一直困扰着这个问题好几天了,所以如果有人可以帮助我,我将非常高兴。
我试图创建一个动态UITableView,为此我创建了一个自定义UITableView子类,并且还创建了一个自定义UITableViewCell子类,因为每个单元格中需要多个UILabel和一个UIButton。
创建了单元格,但是问题在于标签的值始终为nil,因此无法正确显示单元格。
This is, Storyboard 的外观以及this is运行程序时看到的内容。
这是我的UITableViewCell子类:
import UIKit
class QuestionTableViewCell: UITableViewCell {
@IBOutlet var student: UILabel!
@IBOutlet var labDesk: UILabel!
@IBOutlet var topic: UILabel!
@IBOutlet var answers: UILabel!
}
和我的UITableView子类:
import UIKit
class QuestionViewController: UITableViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var table: UITableView!
struct Question {
var student: String
var labDesk: String
var topic: String
var answered: String
}
override func viewDidLoad() {
super.viewDidLoad()
table.estimatedRowHeight = 50
table.dataSource = self
table.delegate = self
self.table.registerClass(QuestionTableViewCell.self, forCellReuseIdentifier: "cell")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell") as QuestionTableViewCell
cell.student.text = "random string"
cell.labDesk?.text = "25/A"
cell.topic?.text = "string"
cell.answers?.text = "3"
return cell
}
}
最佳答案
尝试删除self.table.registerClass(QuestionTableViewCell.self, forCellReuseIdentifier: "cell")