Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make a UIViewPropertyAnimator never complete

Tags:

ios

uikit

swift

Problem Description

I have a UIViewPropertyAnimator managing a blur, among other things, and I'd like to use it just for its fractionComplete property. The problem is that if I set fractionComplete to 1.0, it completes and removes all animations, which I'd like to keep.

Basically, I don't want the animator to complete because that clears its animation blocks.

Workarounds considered

  • Re-add animations upon completion
  • Clamp fractionComplete to something like 0.001...0.999
like image 522
juliand665 Avatar asked Jan 04 '23 03:01

juliand665


1 Answers

With iOS11 is now possible to set

var pausesOnCompletion: Bool { get set }

on the UIViewPropertyAnimator

When the value of this property is true, the animator remains in the active state when the animation finishes, and it does not execute its completion handler. Keeping the animator in the active state allows you to reverse the animation even after it has finished. When the value of this property is false, the animator automatically transitions to the inactive state when the animation finishes, thereby concluding the animation. The default value of this property is false.

source: https://developer.apple.com/documentation/uikit/uiviewpropertyanimator/2909004-pausesoncompletion

like image 103
Giovanni Trezzi Avatar answered Jan 23 '23 09:01

Giovanni Trezzi