2013-03-23 1 views
3

Я пытаюсь анимировать слой так, чтобы непрозрачность начиналась от 0 до 1 за 0.2 секунды, сохраняйте непрозрачность на 1 секунду, а затем снова установите opacity в 0. Я пытаюсь использовать ключевые временные интервалы для сделай это, но я не могу понять это правильно.Как использовать ключевые слова в CAKeyFrameAnimation для анимации непрозрачности слоя?

CAKeyframeAnimation *opacityLabel = [CAKeyframeAnimation animationWithKeyPath: @"opacity"]; 

// 0.2 seconds fade in, 1 second hold, 0.2 seconds fade out 
[opacityLabel setDuration: 1.4]; 
[opacityLabel setDelegate: self]; 
[opacityLabel setValue: @"countLabel" forKey: @"verify"]; 
[opacityLabel setValues: [NSArray arrayWithObjects: [NSNumber numberWithFloat: 1.0], [NSNumber numberWithFloat: 1.0], [NSNumber numberWithFloat: 0], nil]]; 
[opacityLabel setKeyTimes: [NSArray arrayWithObjects: [NSNumber numberWithFloat: 0.2], [NSNumber numberWithFloat: 1.2], [NSNumber numberWithFloat: 1.4], nil]]; 

[[tomorrowCountLabel layer] addAnimation: opacityLabel forKey: @"opacityUp"]; 

ответ

4

Вы почти находитесь. Ключевыми моментами должны быть значения от 0 до 1. Вы можете думать о них как о процентах. Также ваша анимация должна начинаться с непрозрачности 0, а не 1. Итак, вот две строки, которые вы должны изменить:

opacityLabel.values = @[@0, @1, @1, @0]; 
opacityLabel.keyTimes = @[@0, @(0.2/1.4), @(1.2/1.4), @1]; 
+0

@aLevelOfInderection Спасибо! – bbraunj

+0

Если это работает для вас, не забудьте принять ответ. – aLevelOfIndirection

 Смежные вопросы

  • Нет связанных вопросов^_^