Animation experiment

This commit is contained in:
Ali
2021-04-13 21:06:58 +04:00
parent 2360ed2868
commit d26313f99a
41 changed files with 682 additions and 1687 deletions

View File

@@ -640,4 +640,24 @@ class ChatMessageTextBubbleContentNode: ChatMessageBubbleContentNode {
override func getStatusNode() -> ASDisplayNode? {
return self.statusNode
}
func animateFrom(sourceView: UIView, widthDifference: CGFloat, transition: ContainedViewLayoutTransition) {
self.view.addSubview(sourceView)
sourceView.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false, completion: { [weak sourceView] _ in
sourceView?.removeFromSuperview()
})
self.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1)
let offset = CGPoint(
x: sourceView.frame.minX - (self.textNode.frame.minX - 0.0),
y: sourceView.frame.minY - (self.textNode.frame.minY - 3.0)
)
transition.animatePositionAdditive(node: self.textNode, offset: offset)
transition.updatePosition(layer: sourceView.layer, position: CGPoint(x: sourceView.layer.position.x - offset.x, y: sourceView.layer.position.y - offset.y))
self.statusNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25)
transition.animatePositionAdditive(node: self.statusNode, offset: CGPoint(x: -widthDifference, y: 0.0))
}
}