Мои анимации не воспринимаются из текущего состояния во время полета, когда другой стартует, даже если все мои блоки анимации настроены на:
setAnimationBeginsFromCurrentState=YES
То же самое относится и к блочной анимации (новый метод с iOS 4) с установленной опцией UIViewAnimationOptionBeginFromCurrentState
.
На всех моих старых устройствах это работает отлично. На iOS 5 и iPad Simulator это не так. Есть ли обходной путь?
(Примечание. Кажется, он работает на всех протестированных устройствах. Только не на симуляторе.)
Вот пример, который не работает в симуляторе iPad 4.3 или 5.0:
[UIView animateWithDuration:0.5
delay:1.0f
options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState |
UIViewAnimationOptionOverrideInheritedDuration | UIViewAnimationOptionOverrideInheritedCurve
animations:^{
self.layer.transform = CATransform3DScale(CATransform3DIdentity, 0.5f, 0.5f, 1.0f);
}
completion:^(BOOL finished) {
[self performSelector:@selector(finishedScaling)];
}];
Другая анимация начинает устанавливать масштаб преобразования на 0,1, 0,1 (= очень маленький). Во время полета эта анимация срабатывает и пытается вернуть ее к 0,5, 0,5. При включении ранее запущенная анимация неожиданно заканчивается 0,1, 0,1 (= очень мало). Затем масштабируется от 0,1 до 0,5. Не должно случиться Может быть, плохая комбинация вариантов?