marcosgriselli / ViewAnimator

ViewAnimator brings your UI to life with just one line

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AnimationType.vector animates in an incorrect direction

marcosgriselli opened this issue · comments

#70 introduced a new animation case called .vector(CGVector) which replaced the old .from(Direction, CGFloat) case. This new type has a bug where the animations are performed in an incorrect direction.

view.animate(animations: AnimationType.vector(CGVector(dx: 0, dy: 30)))

Should translate the view from top to bottom by 30 points but it's happening in a reversed order.

Hello, Do you have time to fix this issue?

@iTarek I added a comment on the PR a couple of days ago:

@iTarek after some review I believe the functionality is working as expected. I agree the API is a bit confusing but I'm testing >the example project and running this code:
let animation = AnimationType.vector(CGVector(dx: 0, dy: 30))
activityIndicator.animate(animations: [animation], reversed: true, initialAlpha: 1, finalAlpha: 0)
will effectively animate the view by moving it from its current position 30 points to the bottom. Can you maybe replicate the issue you're having on a PR or demo project?

Ok now I understand what cause the problem...
Try to add icon in the middle of the screen
Add this animation

let animZoom = AnimationType.zoom(scale: 2.0)
loadingViewIcon.animate(animations: [animZoom], reversed: true, initialAlpha: 1, finalAlpha: 1, duration: 30.0)

Then after the app load I add this animation to make the icon fall down

let animMove = AnimationType.vector(CGVector(dx: 0, dy: self.view.height/2))
loadingViewIcon.animate(animations: [animMove], reversed: true, initialAlpha: 1, finalAlpha: 1, duration: 0.2)

Before the last update they both was working good with each other, but now they don't.
While the first animation still running the secound animation jump on the top of the screen