我想制作像动画一样的东西。
我有四个UIImageView(名称:IW1,IW2,IW3,IW4) 我希望在image1上的IW1和image2上的IW1中更改图像,之后在image1上的IW2中更改图像,然后在image2上更改图像,之后在image1和下一个image2上的IW3中更改图像,之后在image1上的IW4中更改图像,然后在image2上更改图像
不幸的是,当我尝试这样做时,我唯一能做的就是同时更改所有UIImageViews中的图像,但我想按顺序执行。
有人会帮忙吗?
答案 0 :(得分: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;
}
}
希望这有帮助(我没试过)
答案 1 :(得分: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来调用该函数。
答案 2 :(得分:0)
在某处调用
[self performSelector:@selector(changeImage:) withObject:yourImageView afterDelay:1]
将在1秒延迟后调用此方法
-(void)changeImage:(UIImageView *)yourImageView
{
yourImageView.image = yourImage;
}