iOS:在两个动画视图之间绘制线条

时间:2015-01-24 13:59:50

标签: ios objective-c swift uiviewanimation caanimation

我有两个使用UIView.animateWithDuration的两个不同动画的UIViews。第一个动画立即开始,第二个动画在延迟0.5秒后开始。

如何绘制它们之间的线条并设置动画,如下例所示:

animation

我的第一次尝试是将线条绘制为CGPath,然后使用CABasicAnimation为其设置动画。如果两个视图(或该测试中的形状)同时动画,而不是第二个动画延迟启动时,则此方法有效。

然后我一直在研究不断抓住UIView框架位置的值。这将使我能够在每个动画帧上重新绘制我的线条,但我也无法找到任何方法。

那么...... 怎么做我实现了这个目标?

1 个答案:

答案 0 :(得分:3)

CADisplayLink可能就是你要找的东西。

向您的班级添加update方法并在那里执行动画:

- (void)update {
    // animate view 1
    CGRect frame = view1.frame;
    frame.origin.y += 1;
    view1.frame = frame;
    // animate view 2
    // draw the line/animate another view
}

如果要开始动画,请执行以下操作:

displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)];
[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

动画完成后,从运行循环中删除displayLink