在 iOS 中使用 Loop 为背景设置动画

Posted

技术标签:

【中文标题】在 iOS 中使用 Loop 为背景设置动画【英文标题】:Animate background with Loop in iOS 【发布时间】:2015-01-27 09:43:29 【问题描述】:

在我的视图上使用此代码制作动画背景。

其实有3张图片分别命名为background_screen-1.pngbackground_screen-2.pngbackground_screen-3.png

在我的viewDidLoad 中,我使用以下代码:

- (void)viewDidLoad

    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage animatedImageNamed:@"background_screen-" duration:1.0f]];   

仅显示background_screen-1.png。如何在我的 3 张图片之间循环以获得动画背景?

【问题讨论】:

【参考方案1】:

取一个UIImageView,你可以像下面那样做,因为UIImageView有内置的动画方法

- (void)viewDidLoad

    [super viewDidLoad];

    // Load images
    NSArray *imageNames = @[@"win_1.png", @"win_2.png", @"win_3.png", @"win_4.png",
                        @"win_5.png", @"win_6.png", @"win_7.png", @"win_8.png",
                        @"win_9.png", @"win_10.png", @"win_11.png", @"win_12.png",
                        @"win_13.png", @"win_14.png", @"win_15.png", @"win_16.png"];

    NSMutableArray *images = [[NSMutableArray alloc] init];
    for (int i = 0; i < imageNames.count; i++) 
        [images addObject:[UIImage imageNamed:[imageNames objectAtIndex:i]]];
    

    // Normal Animation
    UIImageView *animationImageView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 95, 86, 193)];
    animationImageView.animationImages = images;
    animationImageView.animationDuration = 0.5;

    [self.view addSubview:animationImageView];
    [animationImageView startAnimating];

【讨论】:

【参考方案2】:

colorWithPatternImage 创建的是静态颜色,而不是随时间变化的颜色。

您可以使用UIImageView 作为 ViewController 的背景。只需使用您的动画图像作为UIImageViewimage

【讨论】:

以上是关于在 iOS 中使用 Loop 为背景设置动画的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 跨视图控制器保持背景动画

iOS - 动画背景问题

按钮背景颜色动画禁用触摸(IOS)

在 WPF 中使用情节提要为网格背景颜色设置动画

使用两个图像为 iphone tableviewCell 背景图像设置动画

使用 Jquery 在 Firefox 中为背景位置 y 设置动画