我在collectionViewController中水平滚动时遇到了问题。
在CellForItemA中,我有以下内容,在每个水平Cell上绘制一些行:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let origine = CGPoint(x: 50.0, y: CGFloat(cell.view.frame.height - 100))
createTextLayer()
showLoads(withOrigine: origine, cellForItemAt: indexPath, scale_H: scale_H, scale_V: scale_V, inView: cell.view)
return cell
我能够在每个单元格中绘制我想要的内容,但问题是某些时候我在单元格1中绘制的内容,它在其他单元格中显示相同。
当我快速移动Cell时会出现这个问题,因为慢慢地这样做我没有问题。
我尝试使用prepareForReuse,willDisplay,但没有用。
任何建议我如何强制collectionViewTable一次只移动一个单元格?
答案 0 :(得分:1)
可能是同一个单元,只是由系统重用。你有没有覆盖prepareForReuse并清理那里的图层? https://developer.apple.com/reference/uikit/uicollectionreusableview
ReloadData是collectionView的一个功能。 https://developer.apple.com/reference/uikit/uicollectionview/1618078-reloaddata
答案 1 :(得分:1)
我的问题已由Svein Halvor Halvorsen解决:
self.view.layer.sublayers?.forEach { $0.removeFromSuperlayer() }