NSView更改属性动画类型

时间:2011-09-02 03:06:37

标签: cocoa animation core-animation nsview

我有一个NSButton,当我打电话给[button setHidden: NO];时我想制作动画但是,我不想要默认的淡入淡出动画,我想要一个左右滑动动画

我确信这并不复杂,但我很难在文档中找到合适的位置。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您应该通过动画师代理更改框架

NSRect aFrameMoreToTheLeft = …;
[[button animator] setFrame:aFrameMoreToTheLeft];

答案 1 :(得分:0)

看起来是向图层添加自定义动画的正确答案,然后只需设置属性,而不是使用属性的默认动画制作者:

CATransition *animation = [CATransition animation];
[animation setDuration: 0.2];
[animation setType: kCATransitionMoveIn];
[animation setSubtype: kCATransitionFromRight];
[animation setTimingFunction: [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]];   

[[button layer] addAnimation: animation forKey: @"slidebutton"];
[button setHidden: NO];

仍未100%清除kCATransitionFadekCATransitionReveal之间Mac OS X的差异。