CAMediaTimingFunction с 3 {0.0f} контрольными точками? - PullRequest
1 голос
/ 07 июля 2011

Я пытаюсь оживить альфа-переходы некоторых NSView.Это должно произойти во время другой анимации, в частности, ее суперпредставления (изменение границ).Довольно сложно объяснить почему, но мне нужны эти альфа-переходы, чтобы иметь функцию синхронизации, при которой альфа остается равной 0,0 в течение первых 3/4 продолжительности (0,25 секунды).Я думал, что если бы я определил свою собственную функцию синхронизации с контрольными точками 0.0, 0.0, 0.0, 1.0, это дало бы желаемый эффект.Очевидно, я не разбираюсь в функциях времени специально, а в общем - в математике.

Если кто-нибудь может дать какой-нибудь совет, это было бы здорово!

С уважением, Алек

1 Ответ

1 голос
/ 07 июля 2011

CAMediaTimingFunction создает кривую Безье с использованием контрольных точек.Я думаю, что для этой задачи лучшим решением было бы использование ключевых кадров для анимации непрозрачности.

CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
animation.values = [NSArray arrayWithObjects:
                    [NSNumber numberWithFloat:0.0],
                    [NSNumber numberWithFloat:1.0], nil];
animation.keyTimes = [NSArray arrayWithObjects:
                      [NSNumber numberWithFloat:0.75],
                      [NSNumber numberWithFloat:1.0], nil];

, которая создаст анимацию, которая останется равной 0 до трех четвертей продолжительности, а затем переместится на 1.

...