ios UIView动画(onUpdate)

ios UIView动画(onUpdate),ios,animation,uiview,Ios,Animation,Uiview,UIView animatWithDuration有一个可选参数用于完成,但我需要一个参数用于更新 整个想法是我需要一个在动画的每一帧上运行的块。我想我可以用一个NSInterval来欺骗它,但这似乎有点过时 想法?改用CADisplayLink。工作原理与NSTimer类似,但每帧仅触发一次,并与动画完全同步 以下是如何设置一个: self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(st

UIView animatWithDuration
有一个可选参数用于
完成
,但我需要一个参数用于
更新

整个想法是我需要一个在动画的每一帧上运行的块。我想我可以用一个
NSInterval
来欺骗它,但这似乎有点过时


想法?

改用CADisplayLink。工作原理与NSTimer类似,但每帧仅触发一次,并与动画完全同步

以下是如何设置一个:

self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(step)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
你的动画代码

- (void)step
{
    //do something related to your animation
}
然后当动画结束时

[self.displayLink invalidate];
self.displayLink = nil;

改用CADisplayLink。工作原理与NSTimer类似,但每帧仅触发一次,并与动画完全同步

以下是如何设置一个:

self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(step)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
你的动画代码

- (void)step
{
    //do something related to your animation
}
然后当动画结束时

[self.displayLink invalidate];
self.displayLink = nil;

听起来不错。我不知道我必须实现
,但是快速的谷歌搜索帮助了我。听起来不错。我不知道我必须实现
,但快速的谷歌搜索在这方面起了作用。