Есть хитрость с трюком animationKeys.
Иногда может быть несколько анимационных клавиш, задерживающихся после завершения анимации.
Это означает, что слой без анимации может возвращать набор animationKeys, даже если он на самом деле не анимируется.
Вы можете убедиться, что animationKeys автоматически удаляются, установив для свойства анимации removeOnCompletion значение YES.
, например
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"aPath"];
animation.removedOnCompletion = YES;
Если вы сделаете это для всех анимаций, которые вы применяете к своему слою, это обеспечит отсутствие анимации клавиш, когда слой не анимируется.