Ich möchte ein UIImageView
animiert in UICollectionViewCell
hinzufügen, also habe ich diesen Code gefunden:
Dies ist mein MainViewController mit einem CollectionView
programmatisch hinzugefügt.
Und das ist meine benutzerdefinierte UICollectionViewCell
mit einem UIImageView
Mein Problem ist, wenn Sie auf eine Zelle tippen, verschwindet die UIImageView
. Als ich versuchte, das Problem zu lösen, suchte ich nach weiteren UICoolectionView
delegierten Methoden. Dann habe ich versucht, shouldHighlightItemAtIndexPath
zu verwenden, aber wenn ich diese Methode verwende, die false zurückgibt, funktioniert die Animation gut, aber die Auflistungsansicht reagiert nicht mehr auf didSelectItemAtIndexPath
.
Dies ist ein github-Repository mit einem Code, der das Problem anzeigt: Ссылка ( mit Lösung aktualisiert ) )
LÖSUNG:
Mit Hilfe von matt habe ich in meinem Code folgende Änderungen vorgenommen:
1) Fügen Sie das Bilder-Array zu highlightedAnimationImages
property
2) Starten Sie die Animation neu, wenn die Zellen deaktiviert sind
%Vor%3) Starten Sie die Animation neu, wenn Zellen ausgewählt sind
%Vor%LÖSUNG 2:
Nach einigen Tests habe ich herausgefunden, dass, wenn Sie tippen und halten eine Zelle UIImageView
wieder verschwindet. Also müssen wir die Animation in zwei anderen Methoden neu starten:
1) didHighlightItemAtIndexPath
%Vor%2) didUnhighlightItemAtIndexPath
%Vor% Wenn Sie die Zelle auswählen, wird die Bildansicht in highlightedAnimationImages
und nicht in animationImages
angezeigt. Sie haben highlightedAnimationImages
nicht festgelegt, sodass Sie nichts sehen.
Hier ist ein Screencast, der zeigt, dass das funktionieren kann. Die Zelle wird ausgewählt, wenn der Hintergrund grau ist (das ist selectedBackgroundView
), aber die Animation wird fortgesetzt:
Falls jemand anderes auf diesen ekligen Bug stößt und die obigen Lösungen nicht helfen, versuchen Sie imageView.stopAnimating()
in der prepareForReuse()
-Funktion Ihrer Zelle aufzurufen.
Tags und Links ios animation uicollectionviewcell swift uiimageview