mmm*_*eys 2 animation uiimageview ios objective-c-blocks
我使用下面的代码在短暂的持续时间后更改UIImageView的图像.正如您所见,正在使用的图像存储在一个数组中.
问题是,无论我设置的"持续时间"或"延迟",图像视图几乎立即变为阵列中的最后一个图像.
我应该使用主线程在每次图像转换之间添加延迟吗?
////////////////////////////////////////////////////////////////
animationCount = 0;
imageArray =[NSMutableArray new];
[imageArray addObject:[UIImage imageNamed:@"gauge1final.png"]];
[imageArray addObject:[UIImage imageNamed:@"gauge2final.png"]];
[imageArray addObject:[UIImage imageNamed:@"gauge3final.png"]];
[imageArray addObject:[UIImage imageNamed:@"gauge4final.png"]];
[imageArray addObject:[UIImage imageNamed:@"gauge5final.png"]];
[self multiStageAnimate];
////////////////////////////////////////////////////////////////
-(void) multiStageAnimate{
[UIView animateWithDuration:5.0
delay:5.0
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^
{
self.gauge.image = [imageArray objectAtIndex:animationCount];
}
completion:^(BOOL finished){
animationCount ++;
if(animationCount < imageArray.count){
[self multiStageAnimate];
}
else
{
animationCount = 0;
}
}];
}
Run Code Online (Sandbox Code Playgroud)
UIImageView 确实有一种机制来满足你的需求.
UIImageView *imageView = [[UIImageView alloc] init];
imageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image1"],
[UIImage imageNamed:@"image2"],
[UIImage imageNamed:@"image3"], nil];
imageView.animationRepeatCount = 0; // 0 means repeat without stop.
imageView.animationDuration = 1.5; // Animation duration
[imageView startAnimating];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2390 次 |
| 最近记录: |