/ / Como fazer animações no estilo UIView no desenvolvimento de aplicativos Cocoa / Mac - objetivo-c, cacau, animação, uikit

Como fazer animações no estilo UIView no desenvolvimento de aplicativos Cocoa / Mac - objective-c, cacau, animação, uikit

Estou fazendo a transição da programação do iPhone para aplicativos nativos do Mac. Uma parte que sinto falta é a simplicidade do sistema de animação UIView.

Eu tinha os dois métodos a seguir para uma subclasse UIView:

-(void) hide{
_isHidden=YES;
[UIView commitAnimations];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5];
self.alpha = 0;
[UIView commitAnimations];
}
-(void) show{
_isHidden=NO;
[UIView commitAnimations];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5];
self.alpha = 1;
[UIView commitAnimations];
}

Agora não tenho certeza de como fazer isso no cacau. Tentei o seguinte, mas não sei se funciona como deveria.

-(void) hide{
[[_myView animator] setAlpha:0];
}

Eu chamo essa função (ocultar) várias vezes, às vezes, enquanto a função fade ainda pode estar em execução.

Respostas:

15 para resposta № 1

Isso deve produzir o mesmo resultado que o seu código iOS:

[NSAnimationContext beginGrouping]; {
[[NSAnimationContext currentContext] setDuration:.5];
[[NSAnimationContext currentContext] setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[_myView.animator setAlphaValue:0.0];
} [NSAnimationContext endGrouping];

A duração padrão é 0,25 segundos. Não sei qual é a função de tempo padrão. Se você concorda com os padrões, basta dizer o seguinte:

[_myView.animator setAlphaValue:0.0];