我有一个UITableView,每个单元格中都有一个UICollectionView。
问题在于表重用了第一个单元格数据,因此它在最新的表单元格中显示了第一个集合...
UITableView代码-
DATABASE
以及UITableViewCell中的UICollectionView-
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! ProjectTableViewCell
if !didIndex{
cell.i = i
i += 1
if i >= projects.count{
i = 0
didIndex = true
}
}
return cell
}
我检查了代码,它看起来像UICollectionView中的结果,cellForItemAt没问题,所以我认为问题是表中单元格的重用,试图找到解决方案!
谢谢大家!
已解决 我用了indexPath.section
答案 0 :(得分:0)
您不应该为单元格分配索引-如果非常脆弱,则应使用此索引。如果移动或删除单元格会发生什么?
您似乎将i
用作assetCollections
中的索引,在这种情况下为什么不…
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! ProjectTableViewCell
cell.assetCollection = assetCollections[indexPath.section]
return cell
}
和
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
photosAsset = (PHAsset.fetchAssets(in: assetCollection, options: nil) as AnyObject!) as! PHFetchResult<AnyObject>!
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionCell", for: indexPath) as! ProjectsCollectionViewCell
let asset: PHAsset = self.photosAsset[indexPath.item] as! PHAsset
PHImageManager.default().requestImage(for: asset, targetSize: self.assetThumbnailSize, contentMode: .aspectFill, options: nil, resultHandler: {(result, info)in
if result != nil {
cell.imageView.image = result
}
})
return cell
}