iOS循环图像幻灯片

时间:2011-10-23 10:41:28

标签: objective-c ios animation core-animation slideshow

我有大约30张图片。我想在没有用户干预的情况下播放这些图像的幻灯片。 Prime要求是 -

  1. image1 fadesIn,显示20秒,image1 fadesOut - image2 FadesIn等。所有这些都会自动发生。没有用户干预。
  2. 当我们到达最后一张图片时,image20。幻灯片循环回到第一张图像。
  3. 此幻灯片可能还有其他元素,例如UILabel。所以这不是图像幻灯片。
  4. 我最大的问题是如何将20张图像链接到这个fadein / fadeout动画中?我们如何在iOS中完成此操作?

3 个答案:

答案 0 :(得分:2)

您可以为幻灯片中必须显示的每个图像使用包含不同UIImageView的UIView,并创建嵌套动画块。像这样:

[UIView animateWithDuration:1.0 
                 animations:^{ /* animations */ } 
                 completion:^(BOOL finished){ [UIView animateWithDuration:1.0 
                                                               animations:^{ /* animations */ } 
                                                               completion:^(BOOL finished){ [UIView animateWithDuration:1.0 
                                                                                                             animations:^{ /* animations */ } 
                                                                                                             completion:^(BOOL finished){}]; }]; }];

答案 1 :(得分:2)

我开发了一个小框架,完全可以使用它,随意使用它: https://github.com/kirualex/KASlideShow

答案 2 :(得分:1)

Kirualex代码非常好,干净且易于实现,谢谢你。 如果有人想通过触摸屏幕来停止转换,当启用自动幻灯片时,我添加了一个布尔属性" addTouchStop'进入KASlideShow.h并将以下方法导入KASlideShow.m。在主viewController内部设置此布尔属性为true。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (addTouchStop) {

    [self stop];
}
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if (addTouchStop) {
    [self start];
}
}