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).

questionAnswers(2)

yourAnswerToTheQuestion