UIImageView animateImages延迟

时间:2011-07-20 13:04:47

标签: iphone uiimageview

我有点不解决这个问题。我有一个带有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文件。除了播放视频之外,还有更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你走了,

  1. 启动计时器以更改图像名称。

    timerAnimation = [[NSTimer scheduledTimerWithTimeInterval:0.10 target:self
    selector:@selector(changeImagesAccordingly) userInfo:nil repeats:YES] 
    retain];
    
  2. 按顺序重命名图像。我有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;
        }
    }
    
  3. 应该这样做:)