层上的CABasicAnimation不会执行

时间:2015-02-10 13:04:50

标签: ios objective-c core-animation quartz-graphics

我试图将简单的发光动画添加到UIButton(在UITableViewController内的TableViewCell内)。

然而,动画似乎并没有执行,即使我把它简化为最简单的形式。

在进一步的研究中,似乎无法使用animateWithDuration:动画图层属性,所以这是我尝试使用CABasicAnimation:

view.layer.masksToBounds = NO;
view.layer.shadowOpacity = 1.0f;
view.layer.shadowColor = [UIColor whiteColor].CGColor;
view.layer.shadowOffset = CGSizeZero;

[CATransaction begin];
[CATransaction setCompletionBlock:^{
    NSLog(@"Animation complete.");
}];
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"shadowRadius"];
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.fromValue = [NSNumber numberWithFloat:0.0f];
animation.toValue = [NSNumber numberWithFloat:50.0.0f];
animation.duration = 2.0;
[view.layer addAnimation:animation forKey:@"shadowRadius"];
[CATransaction commit];

动画持续时间是正确的,但无论我尝试在此交易中设置动画的属性(我已经尝试过几次来自here),动画过程中都没有可见的变化。这几乎与示例from Apple完全相同,但显然我错过了一些东西 - 任何人都知道它是什么?

0 个答案:

没有答案