Since upgrading my project to swift 3 my autolayout constraint animations aren't working; to be more specific, they're snapping to the new position rather than animating.
UIView.animate(withDuration: 0.1,
delay: 0.1,
options: UIViewAnimationOptions.curveEaseIn,
animations: { () -> Void in
constraint.constant = ButtonAnimationValues.YPosition.DefaultOut()
self.layoutIfNeeded()
}, completion: { (finished) -> Void in
// ....
})
I know they added the UIViewPropertyAnimator
class but am yet to try it.
Upgrade to swift 3.0
View right to left animation like apple default push animation
I had this problem too with the newest update to swift 3.
To be exact, whenever you want to animate the view, you actually call layoutIfNeeded on the superview of that view.
Try this instead:
It seems in the past they've been lenient about being able to just relayout the view you want to animate. But its in the documentation that you should really be calling layoutIfNeeded in the superview.
First set the new value for your constraint and then call animate.
Swift 3.1 , Xcode 8.3.2
This code works well for me. Any changes on your view will animate in slow motion.
Swift 4, Xcode 10
Right to Left animation for search
//intially set x = Your_View_Width