Отключение анимации при изменении свойств слоя / вида?
Я написал анимацию, добавив несколько слоев в UIView. Эти слои должны быть видны или невидимы скриптом.
Сценарий основан на объектах, которые реализуют протокол:
<code>// the general protocol for a step @protocol ActionStep -(void) applyForTime:(int)playtime; -(void) reset; @end </code>
в таймере я перебираю объекты шага:
<code>NSEnumerator* enumerator = [ScriptObjects objectEnumerator]; id obj; while ( obj = [enumerator nextObject] ) { id <ActionStep> step = obj; [step applyForTime:currentmilliseconds]; } </code>
Один объект сценария - это объект:
<code>@interface LayerStep : NSObject <ActionStep> { int mTimeOffset; CGPoint mOffset; float mAlpha; LayerObject* mTheLayer; bool mPrepared; } -(id)initWithLayerObject: (LayerObject*) theLayer Milliseconds:(int) milliseconds Offset:(CGPoint) offset Alpha:(float)alpha; @end </code>
и, наконец, я реализую протокол на уровне:
<code>-(void) applyForTime:(int)playtime { if ( mPrepared ) // has the step already been executed? { if ( playtime >= mTimeOffset ) { [mTheLayer setAlpha:mAlpha]; // AssignedLayer.opacity = alpha; [mTheLayer setPosition:mOffset]; // AssignedLayer.position = offset; mPrepared = false; } } } </code>
Применение изменений в шаге приводит к переходу.
Есть ли способ отключить этот переход? Я сейчас вообще не использую вызов CoreAnimation, только сами свойства (см. Код).