How can I get a CAAnimation to call a block every animation tick? <p>Can I somehow have a block execute on every "tick" of a CAAnimation? It could possibly work like the code below. If there's a way to do this with a selector, that works too.</p> <pre><code>NSString* keyPath = @"position.x"; CGFloat endValue = 100; [CATransaction setDisableActions:YES]; [self.layer setValue:@(toVal) forKeyPath:keyPath]; CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:keyPath]; animation.duration = 1; animation.delegate = self; __weak SelfClass* wself = self; animation.eachTick = ^{ NSLog(@"Current x value: %f", [wself valueForKeyPath:keypath]); }; [self.layer addAnimation:animation forKey:nil]; </code></pre>