2016-05-20 14 views
0

私が作成したライトノードをフェードインまたはフェードアウトしようとしていますが、それに応じて関数を呼び出す場所がわからないので、フェードインとフェードアウトが連続して行われます。ここでアニメーション化しようとしたことは、私が持っているものではありません継続的にフェードインしてフェードアウトする

どこでこの機能を呼び出すのですか。これは連続的にフェードインまたはフェードインされますか。 アクション内で呼び出す必要がありますか? ありがとうございました

+0

あなたが流行を開始したいときは?クリックするといつ表示されますか? –

+0

はいビューが表示されているときにフェードアウトを開始し、ビューがまだ表示されている限りフェードインし直したいと考えています。時間の増分が2秒以内で連続的に –

+0

viewDidAppearで関数を呼び出し、継続的にフェードインするために完了ブロックに別のアニメーションブロックを追加します。それが役に立てば幸い。 –

答えて

2

これを使用してフェードインを続行します。

-(void)viewDidAppear:(BOOL)animated{ 

[UIView animateKeyframesWithDuration:1 delay:0 options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse|UIViewAnimationCurveEaseInOut|UIViewAnimationOptionAllowUserInteraction animations:^{ 
    node.alpha = 0; 
} completion:^(BOOL finished) { 
    [UIView animateWithDuration:1 animations:^{ 
     node.alpha = 1; 
    } completion:nil]; 
}]; 
} 
0
-(void) viewWillAppear:(BOOL)animated { 
     [super viewWillAppear:animated]; 
     [objAnimate setAlpha:1.0]; 

     [UIView animateKeyframesWithDuration:2.0 delay:0.0 options:UIViewKeyframeAnimationOptionCalculationModeLinear | UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse animations:^{ 
      [objAnimate setAlpha:0.0]; 
     } completion:nil]; 
    } 

が表示されたとき、これはあなたのオブジェクトの内外に連続フェードを作成します。あなたは、プログラムでカスタムオブジェクトを作成し、そのオブジェクトは以下のようにあなたのビューに追加されたカスタム(例)の後にそれを行う、このコードを使用する場合:

objAnimate = [[UILabel alloc] initWithFrame:CGRectMake(20, 50, 200, 40)]; 
    objAnimate.backgroundColor = [UIColor lightGrayColor]; 
    [objAnimate setAlpha:1.0]; 
    [self.view addSubview:objAnimate]; 
    [UIView animateKeyframesWithDuration:2.0 delay:0.0 options:UIViewKeyframeAnimationOptionCalculationModeLinear | UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse animations:^{ 
      [objAnimate setAlpha:0.0]; 
     } completion:nil]; 

ビューは、その中に追加するとすぐにアニメーションを開始するあなたのビュー。

関連する問題