在CollectionViewController中滚动的问题 - Swift

时间:2017-04-22 17:19:16

标签: swift3 uicollectionviewcell

我在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一次只移动一个单元格?

2 个答案:

答案 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() }