iOS之弹幕效果
来源:互联网 发布:python 微信开发文档 编辑:程序博客网 时间:2024/04/30 12:43
弹幕效果展示:
步骤:
1.
在AppDelegate类里面创建一个视图控制器,并把创建的视图控制器放入父视图中。
其中关于用[self.window addSubview:viewController.view]
和self.window.rootViewController = viewController;请看我的上一篇文章:http://blog.csdn.net/u012989536/article/details/47979875
2.
然后的步骤就需要我们好好地思考一下,做任何一件事都要做好计划,首先要确定要在我们创建的视图里面添加label 标签:设置标签的颜色这里不过多说。代码有注释。
值得注意的是,我们的标签是并不是一个。而是一些标签进行循环的滚动,怎么达到这个效果呢。首先我们不能直接在viewDidLoad里面直接创建,以为这样不利于重复的生成,我们应该把它写在一个函数里面,以有利于我们调用。。于是有了这样一段代码:
- //需要改变的三个地方,label :文本颜色,位置,文本的内容。
- -(void)initDate
- {
- ///只要有肉眼能看到的视图,都是以ui开头的
- //实例化一个标签,(用于现实文字)
- UILabel *label = [[UILabel alloc]init];
- //指定位置和大小。
- label.frame =CGRectMake(480, rand()%290, 250, 30);
- label.text = @“hello world”;
- label.textColor = [UIColor redColor];
- //将label加入本视图中去。
- [self.view addSubview:label];
- }
*3.
然后我们应该调用一个每隔一段时间就会产生一个label标签的方法。这样
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- //设置一个计时器,每隔一段时间就会产生一个label
- [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(initDate) userInfo:nil repeats:YES];
- }
4.
做到这个步骤,我们就能够看出一些效果,因为label会不停的增加。那怎么让它滚动起来呢?
这时候就需要我们写一个move的方法,来控制label的移动。这时候就会用到UIView 的animateWithDuration
方法:
(1):首先我们可以新建一个plist文件,用来存储需要显示的label,plist最好格式为数组类型的。
(2):然后定义一个数组。用来存储plist里面的数据,并创建一个NSSstring类型的字符串用来接受。然后label以字符串的形式进行显示到view上面:代码如下:
- //需要改变的三个地方,label :文本颜色,位置,文本的内容。
- -(void)initDate
- {
- NSString *str = [array objectAtIndex:rand()%array.count];
- ///只要有肉眼能看到的视图,都是以ui开头的
- //实例化一个标签,(用于现实文字)
- UILabel *label = [[UILabel alloc]init];
- //指定位置和大小。
- label.frame =CGRectMake(480, rand()%290, 250, 30);
- label.text = str;
- label.textColor = [UIColor randomColor];
- //将label加入本视图中去。
- [self.view addSubview:label];
- //让生成的label传入下面的move函数中去。
- [self move:label];
- }
- -(void)move:(UILabel*)_label
- {
- [UIView animateWithDuration:5 animations:^{
- _label.frame = CGRectMake(-250, _label.frame.origin.y, _label.frame.size.width, _label.frame.size.height);
- } completion:^(BOOL finished) {
- [_label removeFromSuperview];
- }
- ];
- }
- //从这个方法开始添加(装修)视图已经加载到内存中。
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- //读取plist文件
- NSString *path = [[NSBundle mainBundle ]pathForResource:@"弹幕" ofType:@"plist"];
- array = [[NSArray alloc]initWithContentsOfFile:path];
- //设置一个计时器,每隔一段时间就会产生一个label
- [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(initDate) userInfo:nil repeats:YES];
- }
- + (UIColor *)randomColor
- {
- /*
- 颜色有两种表现形式 RGB RGBA
- RGB 24
- R,G,B每个颜色通道8位
- 8的二进制 255
- R,G,B每个颜色取值 0 ~255
- 120 / 255.0
- */
- CGFloat r = arc4random_uniform(256) / 255.0;
- CGFloat g = arc4random_uniform(256) / 255.0;
- CGFloat b = arc4random_uniform(256) / 255.0;
- return [UIColor colorWithRed:r green:g blue:b alpha:1];
- }
版权声明:本文为博主原创文章,未经博主允许不得转载。
- iOS之弹幕效果
- iOS之弹幕效果
- iOS弹幕效果
- iOS 简单弹幕效果
- IOS弹幕效果
- iOS封装 之 直播弹幕
- 弹幕效果
- 十五 iOS之 酷炫弹幕
- iOS弹幕
- LiveGiftShow-iOS直播弹幕效果(礼物连击)
- Android知识回顾之弹幕效果的实现
- android 弹幕评论效果
- android 中的弹幕效果
- Android弹幕效果实现
- 自定义的弹幕效果
- jquery弹幕效果
- 弹幕效果实现
- Jquery实现弹幕效果
- poj2406 Power Strings(KMP)
- 【玩转GridView】之TemplateField模板
- 1037 -- 八皇后问题
- 解决Android中viewpage预加载的问题
- 1038 -- 不吉利的数字
- iOS之弹幕效果
- Asp.net 的工作原理
- LeetCode2.2.8(Swap Nodes in Pairs)
- 单链表逆序
- 汇总常见的JAVA错误
- HDU Boring counting 4358 莫队算法
- AArch64简介
- 高斯密度的贝叶斯分类
- 1039 -- 单目标0/1背包问题