2017-12-20 5 views
0

Wenn Sie versucht haben, die Objekteinfügung in einer Sammlungsansicht zu animieren, wird die Animation von außerhalb des Bildschirms von links nach rechts oder von rechts nach links verschoben. Dafür ändere ich den Rahmenursprung des Objekts x Wert.UICollectionViewController Element Animation einfügen Swift

enter image description here

Mein Problem ist, wenn ich UIView.animate die Fertigstellung Rückruf rufe die Animation sofort nicht genannt wird, zeige, ich habe versucht, die Animation Code innerhalb des Elements Klasse hinzuzufügen, innerhalb der Methode Collection (_: cellForItemAt :) und sogar versucht, ein benutzerdefiniertes Viewflowlayout zu erstellen und das LayoutAttributesForItemAtIndexPath zu überschreiben, um eine Transformation hinzuzufügen, aber nichts davon hat funktioniert, irgendwelche Vorschläge.

Antwort

1

Dies funktioniert:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { 
    UIView.animate(withDuration: 1, animations: { 
     var newFrame = cell.frame 
     cell.frame = CGRect(x: newFrame.origin.x + 50, y: newFrame.origin.y, width: newFrame.width, height: newFrame.height) 
    }) 
} 

den Offset ersetzen nach Ihrem Bedarf.

Auch funktioniert dies auch:

cell.frame.origin.x = cell.frame.origin.x + 50 

innerhalb der willDisplayCell

+0

Danke für die Anregung nicht der sauberste Weg ist, hatte Kontrollen zu implementieren, um die Animation zu wiederholen, aber es funktioniert. –

+0

Sie können eine Eigenschaft in Ihrer Zelle haben und diese Eigenschaft in dequeReusableCell festlegen. Überprüfen Sie in der willDisplayCell diese Eigenschaft und rufen Sie die Animation auf. Ich bin nicht ganz mit Ihrer Implementierung einverstanden, lassen Sie mich wissen, ob dies geholfen hat. –

+0

Nochmals vielen Dank, ich habe etwas anderes wegen meines Codes gemacht. Was ich nicht verstanden habe, war die Tatsache, dass ich UIView nicht benutzen musste, animiere nur etwas wie diese Zelle hinzuzufügen. Transform = transform war genug, um die Animation zu machen, seltsam. –

Verwandte Themen