I'm not sure about creating a block method, but I found that a fairly simple way to implement a custom easing function and still use block-based animation is to override the addAnimation:(CAAnimation *)anim forKey:(NSString *)key method and swap to another attenuation functions for any kind you want to revive.
To run a subclass of CALayer and add the following method ...
// CustomViewLayer.m
In your view subclass, make sure you return your own class class ...
// CustomView.m
Then you can use standard block-based animation techniques such as ...
[UIView animateWithDuration:0.3 animations:^{ [customView setFrame:newFrame]
... and the user attenuation function will be used. It may not solve all your problems, but it is easy to do, and it still allows you to use block animations. However, keep in mind that the easing function will apply to all animations that are animated using block-based labels. Therefore, if you want to animate an alpha property, for example, but donβt want to use a custom easing function, you will have to play with it or even come up with a different solution.
Finally, here you can find a terrific tool to easily create and test attenuation functions: http://matthewlein.com/ceaser/
source share