如何一个接一个地显示图像

时间:2012-10-19 08:29:12

标签: objective-c

我目前正在遍历列表并根据元素的条件我想显示两个图像中的一个。这工作正常,但我如何在显示图像之间暂停。我尝试过使用:

for(
   ...
   [myView addSubview:myImage]
   sleep(1)
   ...
)
每次检查后

但由于某种原因,在显示任何图像之前等待功能结束。

有没有人知道这是什么原因以及如何解决它?

4 个答案:

答案 0 :(得分:1)

NSArray *imageArray = [NSArray arrayWithObjects:image1, image2, imageN, nil];
UIImageView *imageView = [[UIImageView alloc] init];
imageView.animationImages = imageArray;
imageView.animationDuration = [imageArray count]*3;
imageView.animationRepeatCount = 0;
[imageView startAnimating];

答案 1 :(得分:0)

您不能在此处使用sleep(),因为它会阻止正在更新UI的线程。

您可以做的是调用另一种设置第二张图像的方法:

for(
   ...
   [myView addSubview:myImage]
   // schedule the method.
   [myView performSelector:@selector(addSubview:) withObject:mySecondImage afterDelay:1.0f];
   ...
)

答案 2 :(得分:0)

您可以将元素的alpha / visibility设置为0.0f / hidden,并使用具有延迟的动画块来显示视图。通过将持续时间设置为大于0的值,在此过程中获得奇特的动画; - )

[UIView animateWithDuration: 0.0
                      delay: 1.0
                    options: UIViewAnimationCurveEaseOut
                 animations: ^{
                         myView.alpha = 1.0f;
                     }
                 completion:^(BOOL finished){}];

答案 3 :(得分:0)

您可以创建一个功能来显示图像使用“延迟后执行”:

-(void)displayImage {
    [...get the image...]

    [myView addSubview:myImage];

    [self performSelector:@selector(displayImage) withObject:nil afterDelay:1.0];
}