objective-c - 旋转 NSButton 不起作用

标签 objective-c macos cocoa caanimation

我有对角线向下动画的代码。

CABasicAnimation *rightAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
[rightAnimation setToValue:[NSNumber numberWithFloat:160]];
[rightAnimation setBeginTime:0.0];
[rightAnimation setDuration:0.4];


CABasicAnimation *fall = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
[fall setToValue:[NSNumber numberWithFloat:-20]];
[fall setBeginTime:0.1];
[fall setDuration:0.3];

//DOESN'T WORK
CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.translation.z"];
[rotate setToValue:[NSNumber numberWithFloat:DEGREES_RADIANS(30)]];
[rotate setBeginTime:0.0];
[rotate setDuration:0.4];

CAAnimationGroup *group = [CAAnimationGroup animation];
[group setDuration:0.4];
[group setAnimations:[NSArray arrayWithObjects:rightAnimation, fall, rotate, nil]];

[submitButton.layer addAnimation:rotate forKey:nil];

除了我还希望按钮旋转 30 度之外,它工作得非常好。但由于某种奇怪的原因,这并没有发生,为什么呢?

最佳答案

更改此行:

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.translation.z"];

对此:

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

这应该可以解决您的问题。

关于objective-c - 旋转 NSButton 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42029926/

相关文章:

iOS:后台定位应用耗电过多

ios - 将录制的音频保存在documents目录中,并创建一个包含所有音频文件的数据库

cocoa - NSTextField 获得焦点?

swift - macOS - Swift 4.0 容器 View 不显示 NSView

objective-c - 为 NSURLConnection 使用代理

objective-c - 将数据传递到AppDelegate

objective-c - NSDatePicker - 在更改时获取值

macos - 如何在 Mac OS X 10.6 的 Finder 中禁用 "USB Over Current Notification"弹出窗口?

macos - NSView subview 右键单击无法在 nsimageview 上工作

objective-c - 如何更改声音的非实时音调/采样率?