4

iPhone/iPad を使ってアプリを作っていた時、UIView のフェード効果を作りたいと思っていました。

以下の関数を使用しましたが、うまくいきましたが、Mac用のプログラムを作成していて、UIViewの代わりにNSViewを使用しているため、コードが機能しません。お願いします

-(void)fadeOut:(UIView*)viewToDissolve 
  withDuration:(NSTimeInterval)duration   
       andWait:(NSTimeInterval)wait
{
    [UIView beginAnimations: @"Fade Out" context:nil];

    // wait for time before begin
    [UIView setAnimationDelay:wait];

    // druation of animation
    [UIView setAnimationDuration:duration];
    viewToDissolve.alpha = 0.0;
    [UIView commitAnimations];
}

-(void)fadeIn:(UIView*)viewToFadeIn 
 withDuration:(NSTimeInterval)duration 
      andWait:(NSTimeInterval)wait
{
    [UIView beginAnimations: @"Fade In" context:nil];

    // wait for time before begin
    [UIView setAnimationDelay:wait];

    // druation of animation
    [UIView setAnimationDuration:duration];
    viewToFadeIn.alpha = 1;
    [UIView commitAnimations];

}

/**
 Fade in from fade out
 */
-(void) fadeInFromFadeOut:(UIView*)viewToFadeIn 
             withDuration:(NSTimeInterval)duration
{
    viewToFadeIn.hidden=NO;
    [self fadeOut:viewToFadeIn withDuration:1 andWait:0];
    [self fadeIn:viewToFadeIn withDuration:duration andWait:0];

}

私がしたこと:

-(void)fadeOut:(NSView*)viewToDissolve 
  withDuration:(NSTimeInterval)duration  
       andWait:(NSTimeInterval)wait
{   
    [NSAnimationContext beginGrouping];
    // Animate alpha fades with half-second duration

    // wait for time before begin
    // [NSAnimationContext setAnimationDelay:wait];

    [[NSAnimationContext currentContext] setDuration:duration];
    [[viewToDissolve animator] setAlphaValue:0.0];
    [NSAnimationContext endGrouping];

    }

-(void)fadeIn:(NSView*)viewToFadeIn 
 withDuration:(NSTimeInterval)duration         
      andWait:(NSTimeInterval)wait
{
    // wait for time before begin
    //[NSAnimationContext setAnimationDelay:wait];

    [NSAnimationContext beginGrouping];
    // Animate alpha fades with half-second duration
    [[NSAnimationContext currentContext] setDuration:duration];
    [[viewToFadeIn animator] setAlphaValue:1];
    [NSAnimationContext endGrouping];
}

-(void) fadeInFromFadeOut:(NSView*)viewToFadeIn 
             withDuration:(NSTimeInterval)duration
{
    viewToFadeIn.hidden=NO;
    [self fadeOut:viewToFadeIn withDuration:1 andWait:0];

    [self fadeIn:viewToFadeIn withDuration:duration andWait:0];
}
4

0 に答える 0