我在目标c中有一个可可mac应用程序。
当我按下我的NSButton时,我想用动画顺时针旋转它几秒钟。
我尝试了以下代码但没有工作。
CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
ani.fromValue = [NSNumber numberWithFloat:0];
ani.toValue = [NSNumber numberWithFloat:-M_PI*2];
[btnScan.layer setAnchorPoint:CGPointMake(0.5, 0.5)];
ani.duration = 2.0; // seconds
ani.repeatCount = HUGE_VAL;
[btnScan.layer addAnimation:ani forKey:nil];
我搜索了很多,但无法为此找到合适的解决方案。
有人可以帮我吗?
答案 0 :(得分:1)
在制作动画之前添加[btnScan setWantsLayer:YES];
。 NSView与UIView不同,默认情况下没有后备层。
来自Apple Docs:
在iOS应用中,始终启用Core Animation并支持每个视图 一层。在OS X中,应用必须明确启用Core Animation 通过执行以下操作获得支持:
与QuartzCore框架的链接。 (iOS应用必须仅在明确使用Core Animation接口时才链接此框架。)
通过执行以下操作之一,为一个或多个NSView对象启用图层支持:
在您的nib文件中,使用View Effects检查器为您的视图启用图层支持。检查员显示的复选框 选定的视图及其子视图。建议您启用 尽可能在窗口的内容视图中支持图层。
对于以编程方式创建的视图,调用视图的setWantsLayer:方法并传递值YES以指示 视图应该使用图层。