2017-04-22 4 views
0

Ich habe ein Problem beim horizontalen Scrollen in einem CollectionViewController.Problem mit dem Scrollen in CollectionViewController - Swift

innen CellForItemA, ich habe folgende, einige Linien auf jeder horizontalen Zelle zu zeichnen:

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 

Ich bin in der Lage in jeder Zelle zu ziehen, was immer ich will, aber das Problem ist, irgendwann was auch immer Ich zeichne zum Beispiel in Zelle 1, es zeigt dasselbe in anderen Zellen.
Dieses Problem tritt nur auf, wenn ich Zellen schnell bewege, da ich dabei langsam vorankomme, habe ich kein Problem.

Ich habe versucht, PrepareForReuse, WillDisplay, aber hat nicht funktioniert.

Irgendwelche Ratschläge, wie ich die collectionViewTable zwingen kann, nur eine Zelle in einer Zeit zu bewegen?

Antwort

0

Meine Frage bereits gelöst durch Svein Halvor Halvorsen:

self.view.layer.sublayers?.forEach { $0.removeFromSuperlayer() } 
1

Möglich ist die gleiche Zelle, nur vom System wiederverwendet. Hast du PrepareForReuse überschrieben und die Ebene dort bereinigt? https://developer.apple.com/reference/uikit/uicollectionreusableview

ReloadData ist eine Funktion von collectionView. https://developer.apple.com/reference/uikit/uicollectionview/1618078-reloaddata

+0

Dank Mann für Ihre Antwort, habe ich versucht, prepareForReuse, aber es wurde nie genannt. Ich benutze nicht die selbe Zelle, weil es einige Zeit in Ordnung ist. Ich versuche zu sehen, wie ich eine Zelle zwingen kann, sich nur zur nächsten Zelle auf einmal zu bewegen, oder wenn eine Idee, wie man diese ausgegebene Lösung machen könnte, geschätzt würde. –