iOS动画连续背景?

Posted

技术标签:

【中文标题】iOS动画连续背景?【英文标题】:iOS animate continuous background? 【发布时间】:2014-03-22 18:29:20 【问题描述】:

我正在为 ios6 和 7 创建一个应用程序。我需要制作一个连续的背景,这意味着:我有 2 张图片要循环播放,并制作“无限”视图。我尝试了很多代码示例,但每次我的 iPhone 在打开应用程序时都会变黑。

提前致谢。

这是我目前尝试的代码:

UIImage *cloudImage = [UIImage imageNamed:@"cloud.png"];

CALayer *cloud = [CALayer layer];
cloud.contents = (id)cloudImage.CGImage;
cloud.bounds = CGRectMake(0, 0, cloudImage.size.width, cloudImage.size.height);
cloud.position = CGPointMake(self.view.bounds.size.width / 2,
                             cloudImage.size.height / 2);
[self.view.layer addSublayer:cloud];

CGPoint startPt = CGPointMake(self.view.bounds.size.width + cloud.bounds.size.width / 2,
                              cloud.position.y);
CGPoint endPt = CGPointMake(cloud.bounds.size.width / -2,
                            cloud.position.y);

CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position"];
anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
anim.fromValue = [NSValue valueWithCGPoint:startPt];
anim.toValue = [NSValue valueWithCGPoint:endPt];
anim.repeatCount = HUGE_VALF;
anim.duration = 8.0;
[cloud addAnimation:anim forKey:@"position"];

但我需要在无限循环中有 2 张照片。并且该背景图像正在向上滚动而不是横向滚动

【问题讨论】:

你能分享一下你目前尝试过的代码吗? 我刚刚将代码添加到我的问题中 【参考方案1】:

我认为您正在制作的图片不是带有空视图的循环。因此,您的屏幕将完全充满这些视图。这就是为什么你的屏幕会变黑。因此,在开始无限循环视图之前,请检查是否存在图片。

【讨论】:

我刚刚将代码添加到我的问题中,您有任何 idéers 吗?【参考方案2】:

您在哪里添加了此代码? 有时 viewDidLoad 不是添加视图代码的好地方! 尝试在 viewDidLayoutSubviews 中添加代码或稍作延迟以确保图像正确加载。

试试这个 [self.view.layer addSublayer:cloud]; [self.view addSubview:cloud];

【讨论】:

以上是关于iOS动画连续背景?的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 动画背景问题

在 iOS 中使用动画更改标签背景颜色

ios动画中的黑色背景

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

在 iOS 中实现永久动画背景的最佳技术是啥?

Detox IOS - 由于连续动画错误导致测试失败,disableSynchronization 不起作用