NSView изменить тип анимации свойства

У меня есть NSButton, который я хотел бы анимировать при вызове [button setHidden: NO]; Однако мне не нужна анимация затухания по умолчанию, вместо этого мне нужна анимация слайда слева.

Я уверен, что это не так сложно, но я изо всех сил пытаюсь найти правильное место в документах. Какие-либо предложения?


person MarcWan    schedule 02.09.2011    source источник
comment
Чтобы было ясно, я хочу использовать kCATransitionMoveIn или kCATransitionReveal вместо kCATransitionFade.   -  person MarcWan    schedule 02.09.2011


Ответы (2)


Вы должны изменить кадр через прокси-сервер аниматора.

NSRect aFrameMoreToTheLeft = …;
[[button animator] setFrame:aFrameMoreToTheLeft];
person gcamp    schedule 02.09.2011

Похоже, правильный ответ добавить пользовательскую анимацию к слою, а затем просто установить свойство вместо использования аниматора по умолчанию для свойства:

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% ясно, в чем разница в Mac OS X между kCATransitionFade и kCATransitionReveal.

person MarcWan    schedule 05.09.2011