Анимация CATextLayer на основе действия UISlider - PullRequest
1 голос
/ 22 октября 2011

У меня возникли проблемы с выполнением этой анимации.У меня такое чувство, что, возможно, есть несколько проблем с ним, но я не могу найти правильное направление.Я хотел бы пульсировать (масштабировать вверх и вниз) CATextLayer, пока пользователь перетаскивает элемент управления UISlider.

Внутри метода IBAction у меня есть следующий код.Я проверил, чтобы убедиться, что метод действительно вызывается.

CABasicAnimation *pulse = [CABasicAnimation animationWithKeyPath:@"scale"];
pulse.fromValue = [NSNumber numberWithFloat:1.0];
pulse.toValue = [NSNumber numberWithFloat:1.2];
pulse.duration = 1;
pulse.repeatCount = HUGE_VALF;
pulse.autoreverses = YES;
pulse.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.symbolLayer addAnimation:pulse forKey:nil]; 

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

1 Ответ

2 голосов
/ 29 января 2012

Вы хотите анимировать свойство contentScale. В CATextLayer отсутствует scale свойство.

Кроме того, я обнаружил, что анимация fontSize, кажется, дает мне больше эффекта, который я искал. Он оживляет текст из центра, тогда как анимация contentScale кажется оживляющей из одного из углов.

...