我有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中的链接正常,因为以编程方式更改按钮上的图像可以正常工作。
任何提示为什么它根本不闪烁?
答案 0 :(得分:4)
为了向后兼容,默认情况下,OS X上的视图不使用Core Animation层作为其后备存储。没有任何事情发生的原因可能是你的按钮层是零。
您可以告诉您的观点应该使用myView.wantsLayer = YES;
进行图层备份。请阅读the documentation for wantsLayer
。