Wyłączanie animacji podczas zmiany właściwości warstwy / widoku?

Skomponowałem rodzaj animacji, dodając kilka warstw do UIView. Warstwy te powinny być widoczne lub niewidoczne za pomocą skryptu.

Skrypt jest oparty na obiektach, które implementują protokół:

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

w zegarze wykonuję iteracje obiektów kroku:

<code>NSEnumerator* enumerator = [ScriptObjects objectEnumerator];
id obj;

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

Jednym obiektem skryptu jest ten obiekt:

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

i wreszcie implementuję protokół w warstwie:

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

Zastosowanie zmian w kroku powoduje przejście.

Czy istnieje sposób na wyłączenie tego przejścia? W tej chwili nie używam żadnego wywołania CoreAnimation, tylko same właściwości (patrz kod).

questionAnswers(2)

yourAnswerToTheQuestion