Я роблю перехід від програмування iPhone до рідних застосунків Mac.Одна частина, яку я сумую, - це простота анімаційної системи UIView.
У мене було два методи для підкласу 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];
}
Тепер я не знаю, як це зробити в Какао. Я спробував наступне, але я не впевнений, що він працює так, як треба.
-(void) hide{
[[_myView animator] setAlpha:0];
}
Я називаю цю функцію (приховати) кілька разів, іноді, коли функція зникання може все ще працювати.
Відповіді:
15 для відповіді № 1Це має збігатися з кодом iOS:
[NSAnimationContext beginGrouping]; {
[[NSAnimationContext currentContext] setDuration:.5];
[[NSAnimationContext currentContext] setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[_myView.animator setAlphaValue:0.0];
} [NSAnimationContext endGrouping];
Тривалість за замовчуванням становить 0,25 секунди. Я не знаю, якою є функція синхронізації по замовчуванню. Якщо ви занадто добре за замовчуванням, ви можете просто сказати так:
[_myView.animator setAlphaValue:0.0];