使用核心动画闪烁NSButton

时间:2012-10-15 14:14:45

标签: core-animation nsbutton

我有NSButton名为_indicatorButton的PNG图片(基本上是绿色LED灯,因为PNG设置为setImage :)没有边框和文字。我试图使用以下代码将其设为“flash”:

- (void)animateButton
{
    NSLog(@"Animating…");
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    [animation setFromValue:[NSNumber numberWithFloat:1.0]];
    [animation setToValue:[NSNumber numberWithFloat:0.0]];
    [animation setDuration:0.3f];
    [animation setTimingFunction:[CAMediaTimingFunction
                                  functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    [animation setAutoreverses:YES];
    [animation setRepeatCount:20000];

    [_indicatorButton.layer addAnimation:animation forKey:@"opacity"];
}

......但没有任何反应。调用该方法并且XIB中的链接正常,因为以编程方式更改按钮上的图像可以正常工作。

任何提示为什么它根本不闪烁?

1 个答案:

答案 0 :(得分:4)

为了向后兼容,默认情况下,OS X上的视图不使用Core Animation层作为其后备存储。没有任何事情发生的原因可能是你的按钮层是零。

您可以告诉您的观点应该使用myView.wantsLayer = YES;进行图层备份。请阅读the documentation for wantsLayer