Desativando a animação ao alterar as propriedades de camada / visualização?
Eu compus um tipo de animação adicionando várias camadas a um UIView. Essas camadas serão definidas como visíveis ou invisíveis por um script.
O script é baseado em objetos que implementam um protocolo:
<code>// the general protocol for a step @protocol ActionStep -(void) applyForTime:(int)playtime; -(void) reset; @end </code>
um em um timer eu percorrer os objetos passo:
<code>NSEnumerator* enumerator = [ScriptObjects objectEnumerator]; id obj; while ( obj = [enumerator nextObject] ) { id <ActionStep> step = obj; [step applyForTime:currentmilliseconds]; } </code>
Um objeto de script é este objeto:
<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>
e finalmente eu implemento o protocolo na camada:
<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>
Aplicar as alterações na etapa resulta em uma transição.
Existe uma maneira de desativar essa transição? Eu não estou usando nenhuma chamada CoreAnimation agora, apenas as propriedades em si (veja o código).