我想添加视频(或gif)的背景视图,例如在应用“优步”中 我想在我的应用中长时间使用视频背景视图。
我想知道这些问题的答案:
注册表格的屏幕截图
答案 0 :(得分:7)
首先,
您有两个主要选择:使用带有GIF的 imageView 或将视频用作AVPlayer或MPMoviePlayerController的背景。你可以找到两种方式的例子,这里有几个:
回答你的问题:
它们会消耗更少的电池能量
通常使用视频:如用户 vikingosegundo 视频所述,通常会对其进行优化,并且其编解码器会处理GPU;显示GIF应该是唯一的" CPU工作"因为它只是显示一个帧循环。因此,能量比较是在简单的帧循环(GIF)和更复杂的帧循环之间,可以通过多种方式加速(视频)。然而,根据我的经验,小GIF无论如何都能提供良好的表现。
我可以在iPhone或iPad上使用它吗
两者都要注意宽高比和自动布局约束
此方法的表现
两种情况都很出色,但您必须小心GIF或视频的大小:您的文件(GIF或视频)越大,性能就越差。对于视频更准确地说,质量越高,性能就越差,而视频的持续时间不应该产生影响。
答案 1 :(得分:4)
从下面链接下载背景视频播放库示例源代码的流行和开源库之一
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以直接使用视频&播放重复模式,
OR
您可以将图像与animationImages
类的默认UIImageView
属性一起使用。
如下所示,
YourImageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"sample_1.png"],
[UIImage imageNamed:@"sample_2.png"],
[UIImage imageNamed:@"sample_3.png"],
[UIImage imageNamed:@"sample_4.png"],
[UIImage imageNamed:@"sample_5.png"],
nil];
// How many seconds it should take to go through all images one time.
YourImageView.animationDuration = 5.0;
// How many times to repeat the animation (0 for indefinitely).
YourImageView.animationRepeatCount = 4;
[YourImageView startAnimating];
希望这会对你有所帮助。
答案 4 :(得分:0)
您可以使用.png
或.jpeg
格式的图片集来实现此目的,并将图片分配给UIImageView
:
UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 548)];
//Add images which will be used for the animation using an array. Here I have created an array on the fly
NSMutableArray *drawingImgs = [NSMutableArray array];
[drawingImgs addObject:[UIImage imageNamed:@"image1.png"]];
[drawingImgs addObject:[UIImage imageNamed:@"image2.png"]];
[drawingImgs addObject:[UIImage imageNamed:@"image3.png"]];
[drawingImgs addObject:[UIImage imageNamed:@"image4.png"]];
[drawingImgs addObject:[UIImage imageNamed:@"image5.png"]];
backgroundImageView.animationImages = drawingImgs;
//Set the duration of the entire animation
backgroundImageView.animationDuration = 0.5;
//Set the repeat count. If you don't set that value, by default will be a loop (infinite)
backgroundImageView.animationRepeatCount = 1;
//Start the animationrepeatcount
[backgroundImageView startAnimating];
答案 5 :(得分:0)
我使用的是xCode 7和iOS 9。 我使用了gif图像,它工作正常。
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Name of your image" ofType:@"gif"];
NSData *gif = [NSData dataWithContentsOfFile:filePath];
UIWebView *webViewBG = [[UIWebView alloc] initWithFrame:self.view.frame];
[webViewBG loadData:gif MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
webViewBG.userInteractionEnabled = NO;
[self.view addSubview:webViewBG];