如何解决UITableviewcell 是错误的数据
我已经创建了一个自定义的 UITableViewCell,并且该单元格有两个 UITableView。
他们每个人都有UITableViewCell。像这样
- 查看
- UITableView --(WrapTableView)
- UITableViewCell
- 堆栈视图
- UITableView --(informationTableView)
- UITableViewCell
- UITableView --(ItemTableView)
- UITableViewCell
- UITableView --(informationTableView)
- 堆栈视图
- UITableViewCell
- UITableView --(WrapTableView)
我的代码是这样的,
class MyViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var wrapTableView: UITableView!
// ... //
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
as? WrapTableViewCell else {
return UITableViewCell()
}
cell.setup()
return cell
}
}
}
class WrapTableViewCell: UITableViewCell {
@IBOutlet weak var informationTableView: UITableView!
@IBOutlet weak var itemTableView: UITableView!
let informationTableViewDelegate = informationTableViewDelegate()
let itemTableViewDelegate = itemTableViewDelegate()
func setup(){
self.informationTableView = informationTableViewDelegate
self.itemTableView = itemTableViewDelegate
}
override func prepareForReuse() {
//...
//What should I write?
...//
}
}
class informationTableViewDelegate: NSObject,UITableViewDelegate {
guard let cell = tableView.dequeueReusableCell(withIdentifier: informationTableViewDelegateCell.identifier) as? informationTableViewDelegateCell else {
return UITableViewCell()
}
cell.setup(text: text)
return cell
}
class ItemTableViewDelegate: NSObject,UITableViewDelegate {
guard let cell = tableView.dequeueReusableCell(withIdentifier: ItemTableViewDelegateCell.identifier) as? ItemTableViewDelegateCell else {
return UITableViewCell()
}
cell.setup(itemPrice: itemPrice)
return cell
}
class informationTableViewDelegateCell: UITableViewCell {
@IBOutlet weak var itemNameLabel: UILabel!
func setup(text:String){
self.itemNameLabel.text = text
}
override func prepareForReuse() {
//...
//What should I write?
...//
}
}
class ItemTableViewDelegateCell: UITableViewCell {
@IBOutlet weak var itemPriceLabel: UILabel!
func setup(itemPrice:String){
self.itemPriceLabel.text = itemPrice
}
override func prepareForReuse() {
//...
//What should I write?
...//
}
}
我的问题是,在滚动过程中,旧单元格仍然显示。
我知道我必须使用 prepareForReuse 方法重置旧数据才能重置所有日期。
但是,就我而言,我不知道在每个 prepareForReuse() 方法中写什么,因为例如,WrapTableViewCell 的属性不像 image 或 Label,但在这些情况下,image.image =应用了 nil 或 label.text = "",但就像 IBOutlet 附加的 tableviews
谢谢
解决方法
不需要使用 prepareForReuse 方法。您需要重新加载数据才能传递给表格视图
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。