我有一个要求动画图像。我有大量的图像,这需要作为视频播放。在玩游戏的时候,有时我需要更改一些图片,因为它们会在服务器上更新。所以玩耍应该会自动更新这个新的图像。动态改变动画中的图像IOS
我试过使用UIImageView。我们无法控制动画。 然后我尝试CAKeyframeAnimation提供图像数组值属性。我可以播放和暂停动画。但是在这里我也不能在播放时动态改变图像。
任何人都可以帮助我解决这个问题。
感谢 MIA
我有一个要求动画图像。我有大量的图像,这需要作为视频播放。在玩游戏的时候,有时我需要更改一些图片,因为它们会在服务器上更新。所以玩耍应该会自动更新这个新的图像。动态改变动画中的图像IOS
我试过使用UIImageView。我们无法控制动画。 然后我尝试CAKeyframeAnimation提供图像数组值属性。我可以播放和暂停动画。但是在这里我也不能在播放时动态改变图像。
任何人都可以帮助我解决这个问题。
感谢 MIA
上的UIImageView动画系统是非常有限的。我建议你用say 2图像视图制作你自己的实现。
你会比改变一个imageview的形象和淡入和淡出使用UIView animateWithDuration
我已经写了你的方法。请注意:我没有测试过它。
它假定你有你的帧称为“框架”数组中,并有放置彼此称为“imgv1”和“imgv2”
-(void)performAnimationOfFrameAtIndex:(NSNumber*)indexNum
{
int index = [indexNum intValue];
if(index >= frames.count)
{
return;
}
UIImage *img = [frames objectAtIndex:index];
UIImageView *imgIn;
UIImageView *imgOut;
if(index % 2 == 0)
{
imgIn = imgv1;
imgOut = imgv2;
}
else {
imgIn = imgv2;
imgOut = imgv1;
}
imgIn.image = img;
[self.view sendSubviewToBack:imgIn];
[UIView animateWithDuration:0.1 animations:^{
imgIn.alpha = 1;
imgOut.alpha = 0;
} completion:^(BOOL finished) {
[self performSelectorOnMainThread:@selector(performAnimationOfFrameAtIndex:) withObject:[NSNumber numberWithInt:index+1] waitUntilDone:NO];
}];
}
使用两UIImageViews
和交换他们的前两名UIIMageView
。
如果您对“动画”UIView
的引用较弱,请务必检查动画是否在完成块中完成。否则,当您导航到另一个视图时,您可能会遇到性能问题,对动画方法的递归调用将继续!
- (void)animateImagesAtIndex:(NSNumber *)imageIdx {
// Do something here
[UIView animateWithDuration:1 animations:^{
// Do swap
}
completion:^(BOOL finished) {
if (finished) {
[self animateImagesAtIndex:imageIdx];
}
}];
}
UIImageView支持一系列图像的动画。您只需使用图像数组设置属性animationImages,然后调用方法startAnimating和stopAnimating。
你的意思是如果我有100帧..我需要使用3个图像视图,并将第3个位置,然后替换这些图像视图中的下3个图像等。你能否详细说明一下? – mia 2012-04-19 05:22:20
看到我上面编辑的答案... – EsbenB 2012-04-19 12:10:50