0

一度に3つの画像をフェードインおよびフェードアウトさせようとしています。私はこのコードにかなり近いと思いますが、期待どおりに機能していません。

私が望んでいるのは、各画像が 0.5 秒以上フェードインし、2 秒間画面に留まり、0.5 秒以上フェードアウトすることです。3 枚目の画像がフェードアウトしたら、停止させたいと思います。

以下のコードは、最初の画像を何度もフェードアウトさせ続けており、タイミングを適切に下げることができないようです。どんな援助も素晴らしいでしょう!

-(void) viewDidLoad {

    pImageC = [[UIImageView alloc]init];
    NSArray *animationArray = [NSArray arrayWithObjects:[UIImage 
    imageNamed:@"p_image_a.png"],[UIImage imageNamed:@"p_image_b.png"],[UIImage 
    imageNamed:@"p_image_c.png"], nil]; //add your images here
    [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(crossfade) 
    userInfo:nil repeats:YES];
    [pImageC  setFrame:CGRectMake(0,0,320,367)];
    pImageC.animationImages = animationArray; //mainImageView is   imageview
    pImageC.animationDuration = 2;
    pImageC.animationRepeatCount = 0;
    [pImageC startAnimating];
    [self.view addSubview:pImageC];
}

- (void)crossfade {

    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut 
    animations:^{
        pImageC.alpha = !pImageC.alpha;
    }completion:^(BOOL done){
        //
    }];
}
4

1 に答える 1

0

クロスフェードアニメーションのためにこのようなことを試してください

- (void)crossfade 
{
    [UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
        self.animationImageView.alpha = 0.0;
    }completion:^(BOOL done){
        [self performAnimationOnView];

        [UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
            self.animationImageView.alpha = 1.0;
        }completion:^(BOOL done){


        }];


    }];

}
于 2013-06-25T12:34:10.767 に答える