0

我想做一些类似动画的东西。

我有四个 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

    }];
}

您可以使用类似的方法进行系列更改。您可以为每个图像创建另一个这些函数,并让它们依次调用。或者将函数更改为递归。

如果你想让它继续改变我们一个 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 回答