I haven’t used UIViewPropertyAnimator
very much (still an old fashioned blocks guy) and I’m seeing some behavior that I can’t explain and that the docs don’t really provide any insight on.
Why does an animator’s completion block get called with a finalPosition
of .end
even when the animator is paused immediately after it’s started?
let view = UIView()
let animator = UIViewPropertyAnimator(duration: 4, curve: .linear, animations: {
view.alpha = 0
})
animator.addCompletion { position in
print("done")
switch position {
case .start: print("start")
case .current: print("current")
case .end: print("end")
}
}
animator.startAnimation()
print("starting")
animator.pauseAnimation()
print("pausing")
Output:
starting
pausing
done
end