相关疑难解决方法(0)

使用CoreAnimation减慢和加速动画

我正在尝试将慢动作效果应用到我的应用程序,就像你按下Shift键如何减慢Mac OS的大多数图形效果一样.

我的应用程序使用CoreAnimation,所以我认为它应该没什么大不了的:设置speed为一些较慢的值(比如0.1)并将其设置回1一旦我完成,然后我就去了.

不幸的是,这似乎不是正确的方法.减速效果很好,但是当我想恢复到正常速度时,它会恢复速度,就像速度1一样.这基本上意味着如果我按住Shift足够长的时间,只要我释放它,动画就会立即完成.

我找到了一个技术质量保证页面,解释了如何暂停和恢复动画,但如果它不是完全暂停动画,我似乎无法做到正确.我在时间扭曲方面肯定不是很擅长.

什么是减速然后使用CoreAnimation恢复动画的正确方法?

这是有用的代码:

-(void)flagsChanged:(NSEvent *)theEvent
{
    CALayer* layer = self.layer;
    [CATransaction begin];
    CATransaction.disableActions = YES;
    layer.speed = (theEvent.modifierFlags & NSShiftKeyMask) ? 0.1 : 1;
    [CATransaction commit];
}
Run Code Online (Sandbox Code Playgroud)

core-animation

5
推荐指数
1
解决办法
1749
查看次数

标签 统计

core-animation ×1