Почему объект CATextLayer имеет несовместимую CAKeyFrameAnimation? - PullRequest
0 голосов
/ 04 января 2012

Что подразумевается: нажатие кнопки запрашивает анимирование строкового значения объекта CATextLayer до тех пор, пока оно не будет остановлено другим запросом нажатия кнопки.За эти действия отвечают две отдельные кнопки, чтобы их не перепутать.

Что на самом деле происходит: в запросе на воспроизведение есть несколько случаев, когда строка 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 Ответ

1 голос
/ 13 января 2012

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

...