重用UITableViewCell

时间:2017-05-27 12:27:52

标签: ios swift3

我正在尝试重用我的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)

3 个答案:

答案 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")