gpt4 book ai didi

swift - 不使用 CollectionView 的 ReusableCell 重用数据

转载 作者:行者123 更新时间:2023-11-28 15:56:40 24 4
gpt4 key购买 nike

我有 tableView:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "cellTime", for: indexPath) as! TimeViewCell
let showHour = self.infoWripper.sorted(by: { $0.hour < $1.hour })[indexPath.row]

cell.labelTime.text = showHour.showHour()

cell.dataForShow = showHour.showFullTime()


return cell
}

带有单元格的 TableView 内容 UICollectionView 的单元格。

class TimeViewCell: UITableViewCell {

@IBOutlet weak var labelTime: UILabel!

var dataForShow = [String]()

@IBOutlet weak var collectionView: UICollectionView!

override func awakeFromNib() {
super.awakeFromNib()

collectionView.delegate = self
collectionView.dataSource = self

}

}

extension TimeViewCell: UICollectionViewDelegate, UICollectionViewDataSource {

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

return dataForShow.count
}


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionCell", for: indexPath) as! CustomCollectionCell

cell.labelCollection.text = dataForShow[indexPath.row]

//heightForCell = collectionView.contentSize.height

return cell
}

}

class CustomCollectionCell: UICollectionViewCell {

@IBOutlet weak var labelCollection: UILabel!

}

当我打开带有表的 VC 时 - View 正常,但当我开始滚动时 - 我发现数据不正确(重用),但我找不到我的错误。滚动前:

enter image description here

之后:

enter image description here

最佳答案

您需要在单元格中重新加载 Collection View 。试试这个:

class TimeViewCell: UITableViewCell {
....
var dataForShow = [String]() {
didSet {
self.collectionView?.reloadData()
}
}

关于swift - 不使用 CollectionView 的 ReusableCell 重用数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41634265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com