Why value animation doesn't work
You obviously found the value property. Check the documentation and you will see this offer
To make an animated transition from the current value to the new value, you must use the setValue:animated: method instead.
So, as the documentation says, use
[aSlider setValue:player.currentTime animated:YES]
Why do you only get events when you release your finger
The reason you only get events when you release your finger is because your slider is not continuous. From the documentation for the continuous property:
If YES , the slider continuously transmits update events to the appropriate target action method. If NO , the slider sends an action event only when the user releases the thumb of the slider to set the final value.
NSTimer is not the best way
No, using NSTimer to animate changes, as this is definitely not the best way, I would say that it is very bad practice to use a timer. Not only is this inefficient and possibly inaccurate, but you are also losing built-in support to facilitate animation.
If you really cannot do this without a timer, you should at least use CADisplayLink instead of NSTimer . It is designed to work with user interface updates (unlike NSTimer, which is not).
source share