Я пытаюсь оживить представление в мигающий карет (как в текстовом редакторе). I не хотите, чтобы каретка интерполировалась; Я использую непрозрачность, чтобы показать/скрыть курсор, и я хочу, чтобы он шел прямо от 1.0 до 0.0. Вот то, что я до сих пор:CAKeyframeAnimation for blinking caret
CAKeyframeAnimation* blinkAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"];
blinkAnimation.values = @[ @(1.0), @(0.0) ];
blinkAnimation.keyTimes = @[ @0.0, @0.5 ];
blinkAnimation.duration = 1.0;
blinkAnimation.calculationMode = kCAAnimationDiscrete;
blinkAnimation.repeatCount = HUGE_VALF;
blinkAnimation.removedOnCompletion = NO;
По какой-то странной причине, каретка обращается в полной непрозрачности, и никогда не обращается в нуль непрозрачности. Однако, если я перехожу от blinkAnimation.calculationMode = kCAAnimationDiscrete
в blinkAnimation.calculationMode = kCAAnimationLinear
, то карет анимирует! Что происходит?!