我正在尝试重用我的UITableViewCells。目前我的应用程序工作正常,在tableView中显示内容。但是,当我尝试并实现 - 重用UITableViewCells时,我的应用程序崩溃了。我已经记下了下面的错误。有人可以建议吗?
android:background="@drawable/custom_bg"
android:foreground="?android:attr/selectableItemBackground"
控制台中的错误:
// This code works
let cell = UITableViewCell.init(style: .subtitle, reuseIdentifier: "UITableViewCell")
// However, When I replace it with the following my app crashes.
let cell = self.tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath)
答案 0 :(得分:1)
如果您想在cellForRowAt
中重复使用该单元格,则需要先使用tableView
将单元格注册到reuseIdentifier
。因此,请将UITableViewCell
课程注册到tableView
。
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
}
答案 1 :(得分:0)
在使用cellForRow之前,你必须将单元格注册到你的班级 像那样
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"YourReuseIdentifier"];
在viewDidLoad方法中!
答案 2 :(得分:0)
如果你在添加UITableViewCell子类时创建了tableview单元格nib,那么你应该注册nib而不是class。只是做,
tableView.register(UINib.init(nibName: "nibname", bundle: nil), forCellReuseIdentifier: "identifier")