我有点不解决这个问题。我有一个带有37个图像的UIImageView动画,在这里我展示了一个装满酒精的玻璃杯。 我在ViewDidLoad中初始化我的图像数组,
NSArray * GlassAnim = [[NSArray alloc] initWithObjects:
[UIImage imageWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"SodaPour1" ofType:@"png"]],
[UIImage imageWithContentsOfFile:
[[NSBundle mainBundle] pathForResource:@"SodaPour39" ofType:@"png"]],
nil];
imgGlass.animationImages = GlassAnim;
imgGlass.animationDuration = 2.5;
imgGlass.contentMode = UIViewContentModeScaleAspectFit;
imgGlass.animationRepeatCount=1;
[GlassAnim release];
然后,当用户点按屏幕时,我会调用 startAnimating 。但问题是动画第一次延迟了半秒钟。每张图片的尺寸均为 330 * 372 像素,文件大小为 180KB png文件。除了播放视频之外,还有更好的方法吗?
感谢。
答案 0 :(得分:0)
你走了,
启动计时器以更改图像名称。
timerAnimation = [[NSTimer scheduledTimerWithTimeInterval:0.10 target:self
selector:@selector(changeImagesAccordingly) userInfo:nil repeats:YES]
retain];
按顺序重命名图像。我有16张图片。
例如: - “AnimationImg1.png”,“AnimationImg2.png”,“AnimationImg3.png”
- (void)changeImagesAccordingly {
if (iImgAnim<16) {
imgView.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:[NSString stringWithFormat:@"AnimationImg%d",iImgAnim] ofType:@"png"]];
iImgAnim++;
} else {
[timerAnimation invalidate];
iImgAnim=1;
}
}
应该这样做:)