2

我有一个带有 PNG 图像的NSButton调用_indicatorButton(基本上是一个绿色 LED 灯,用 setImage 设置为 PNG),没有边框和文本。我正在尝试使用以下代码使其“闪烁”:

- (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中的链接正常,因为以编程方式更改按钮上的图像可以正常工作。

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

4

1 回答 1

4

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

您可以告诉您的观点,它应该使用myView.wantsLayer = YES;. 请阅读.wantsLayer

于 2012-10-16T06:36:55.483 回答