0

アニメのようなものを作りたい。

私は4つのUIImageView(名前:IW1、IW2、IW3、IW4)を持っています.image1のIW1の画像を変更し、次にimage2の画像を変更した後、image1のIW2の画像を変更し、次にimage2の画像を変更した後、image1のIW3の画像を変更し、次の image2、その後 image1 の IW4 でイメージを変更し、次に image2 でイメージを変更します。

残念ながら、これをやろうとしたとき、できることはすべての UIImageViews の画像を同時に変更することだけでしたが、順番にやりたいと思います。

誰か助けてくれる?

4

3 に答える 3

1

私はこのようにします

ヘッダーインターフェイス

int j;
int i;

UIImageView *imgV1;
UIImageView *imgV2;
UIImageView *imgV3;
UIImageView *imgV4;

UIImage *img1;
UIImage *img2;

NSArray *views;
NSArray *imgs;

実装

- (void)viewDidLoad{
    i=0;
    j=0;
    views = [[NSArray alloc] initWithObjects:imgV1, imgV2, imgV3, imgV4, nil];
    imgs = [[NSArray alloc] initWithObjects:img1, img2, nil];
    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];
}


-(void)changeImage{
    UIImageView *imageView = [views objectAtIndex:j];
    UIImage *image = [imgs objectAtIndex:i];
    imageView.image = image;
    i++;
    if(i==2){
        i=0;
        j++;
        if(j==4)
            j=0;
    }
}

これがお役に立てば幸いです(私は試しませんでした)

于 2012-05-09T19:45:30.157 に答える
1
- (void)runSwitchImages
{
    [UIView animateWithDuration:2 delay:2 options:UIViewAnimationCurveEaseInOut animations:^{
        //Animate Image Change Here
    } completion:^(BOOL finished) {
        //When The Image is done animating it will go here

    }];
}

このようなものを使用して、一連の変更を行うことができます。これらの関数を画像ごとにもう 1 つ作成し、連続して呼び出すことができます。または 関数を recursive に変更します。

引き続き変更したい場合は、NSTimer を呼び出して関数を呼び出します。

于 2012-05-09T23:44:46.113 に答える
0

これをどこかに呼んで

[self performSelector:@selector(changeImage:) withObject:yourImageView afterDelay:1]

1秒遅れてこれを呼び出します

-(void)changeImage:(UIImageView *)yourImageView
{
     yourImageView.image = yourImage;
}
于 2012-05-09T19:19:20.340 に答える