Отключить анимацию при изменении свойств слоя/представления?

Я составил своего рода анимацию, добавив несколько слоев в UIView. Эти слои должны быть установлены видимыми или невидимыми с помощью скрипта.

Сценарий основан на объектах, которые реализуют протокол:

// the general protocol for a step
@protocol ActionStep 
-(void) applyForTime:(int)playtime;
-(void) reset;
@end

и в таймере я перебираю объекты шага:

NSEnumerator* enumerator = [ScriptObjects objectEnumerator];
id obj;

while ( obj = [enumerator nextObject] )
{
  id <ActionStep> step = obj;
  [step applyForTime:currentmilliseconds];
}

Одним из объектов сценария является этот объект:

@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

и, наконец, я реализую протокол на уровне:

-(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;
    }
  }
}

Применение изменений на шаге приводит к переходу.

Есть ли способ отключить этот переход? Я вообще не использую вызов CoreAnimation прямо сейчас, только сами свойства (см. код ).

9
задан Zuppa 14 April 2012 в 19:12
поделиться