iOS动画连续背景?

时间:2014-03-22 18:29:21

标签: ios iphone ios7 ios6

我正在为iOS6和7创建一个应用程序。我需要创建一个连续背景,意思是:我想要循环播放2张图片,并制作" infinity"视图。我已经尝试了很多代码示例,但每次打开应用程序时我的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张照片。并且该背景图像向上滚动而不是侧向

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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