ios UIView动画(onUpdate)

Jac*_*nkr 1 animation uiview ios

UIView animatWithDuration有一个可选的参数completion,但我需要一个update

整个想法是我需要一个在每个动画帧上运行的块.我想我可以用一个恶搞这个NSInterval,但这看起来很糟糕.

思考?

Nic*_*ood 5

请改用CADisplayLink.就像NSTimer一样工作,但每帧都会触发一次,并且与动画完全同步.

这是你如何设置一个:

self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(step)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
Run Code Online (Sandbox Code Playgroud)

你的动画代码

- (void)step
{
    //do something related to your animation
}
Run Code Online (Sandbox Code Playgroud)

然后当动画结束

[self.displayLink invalidate];
self.displayLink = nil;
Run Code Online (Sandbox Code Playgroud)