2012-01-04 1 views
0

То, что предполагается: Щелчок по кнопке требует, чтобы строковое значение объекта CATextLayer было анимировано до остановки другим запросом на нажатие кнопки. Для этих действий есть две отдельные кнопки, поэтому действия не путаются.Почему объект CATextLayer имеет непоследовательность CAKeyFrameAnimation?

Что на самом деле происходит: В запросе воспроизведения есть несколько экземпляров, когда строка textLayer не анимирована, а ее строковое значение остается неизменным при отображении назначенного «0» (как показано выше). В этом случае анимация никогда не инициализируется и не назначается объекту CATextLayer. Однако ошибка несовместима. Есть также несколько случаев, когда объект CATextLayer отображает соответствующие строковые значения. При непрерывном нажатии кнопки показатель успеха составляет примерно 70% от того, как объект CATextLayer оживляет его строковое значение. Существуют ли какие-либо сценарии, которые будут обходить линию кода метода addAnimation?

Я ценю любую и всю вашу помощь с проблемой. Заранее спасибо!

-(IBAction)playText:(id)sender{ 
    //textLayer object is instantiated elsewhere in the class 
    textLayer.frame = CGRectMake(0, 0, 128, 16); 
    textLayer.fontSize = 14; 
    textLayer.backgroundColor = [UIColor clearColor].CGColor; 
    textLayer.foregroundColor = [UIColor yellowColor].CGColor; 
    textLayer.string = @"0"; 
    [self.layer addSubLayer:textLayer]; 

    CAKeyframeAnimation *textAnimation = [CAKeyframeAnimation animationWithKeyPath:@"string"]; 
    textAnimation.values = values; 
    textAnimation.repeatCount = HUGE_VALF; 
    textAnimation.keyTimes = intervals; 
    textAnimation.calculationMode = kCAAnimationLinear; 
    textAnimation.duration = 6; 
    [textLayer addAnimation:textAnimation forKey:@"string"]; 
} 

-(IBAction)stopText:(id)sender{ 
    [textLayer removeAnimationForKey:@"string"]; 
} 

ответ

1

Объект должен быть повторно инициализирован для каждого ключевого кадра анимации, в дополнение к быть вновь добавлены к его родителей подуровень.

+0

И как это делается? – rmaddy