iOS之弹幕效果

弹幕效果展示:

步骤:

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];

}

(3):为了程序的健全性,我们让每一个产生出来的label的文本拥有不同的颜色,方法:新建一个UIColor的分类文件,然后写一个颜色不断改变的方法:

+ (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];
}

注意:由于没生成一个label都会占用内存空间,所有,一定要生成后的释放工作,不然,长时间运行程序,内存会被占用的越来越多。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 18:57:52

iOS之弹幕效果的相关文章

弹幕效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>仿弹幕效果</title> <style> *{margin: 0;padding: 0;list-style: none;} html,body{width: 100%;height: 100%;} body{background-color:

Android:简单的弹幕效果达到

首先,效果图.分类似至360检测到的骚扰电话页面: 布局非常easy,上面是一个RelativeLayout,以下一个Button. 功能: (1)弹幕生成后自己主动从右側往左側滚动(TranslateAnimation).弹幕消失后立马被移除. (2)弹幕位置随机出现.而且不反复(防止文字重叠). (3)字体大小在一定范围内随机改变.字体颜色也能够设置. (4)自己定义先减速,后加速的Interpolator,弹幕加速进入.减速停留.然后加速出去. 1.Activity代码: /** * 简易

又一枚精彩的弹幕效果jQuery实现

精彩的弹幕效果分享给大家,具有一定的参考价值,感兴趣的朋友可以尝试制作弹幕,具体内容如下 简易弹幕效果:将发布的内容随机显示在弹幕右侧,逐渐左移最后消失. 涉及知识点:val().random().height().css().append().remove()等,主要是元素的操作 html代码: ? 1 2 3 4 5 6 7 8 9 <a href="#">弹幕技术</a>   <div class="mask">     &

实现ios常见菜单效果的思路

目前见过的实现边侧菜单的效果,比较流行的有以下三种:(效果图) 1.菜单栏覆盖在部分主视图上 附上实现该效果的一个不错的源码地址: http://code4app.com/ios/RNFrostedSidebar/524399706803fa3c33000001 (1)最开始要实现这个效果,我想最简单的方式就是:添加UIView,加上一个self.view大小的子视图,菜单列表以外的区域设为透明灰色.后来发现,如果当前的控制器有显示导航栏或者工具栏,这个子视图就无法遮盖住导航栏或者工具栏上面的按

【Android】【沙湾】我的自定义控件-简单的弹幕效果

[写在前面] 虽然是写技术博客(技术含量未必高- -!),但想来我的博客里边第一段都应该用来发牢骚之类的,原因就是,这是我的博客,任性. 学生时代,我是一个作文水平极烂的学生,但我觉得我心里是有文艺细胞的(额...).我在博客园和CSDN等看到了众多大牛写的博客,收益颇多,于是也想分享自己的一些学习体会.学习,我不排斥那些拿来主义的人,但"拿来"要灵活.死板的拿来只用,这对自己只是增加了经验,而并不会有什么长进.关于IT界的"拿来",我相信很多人都是从"拿

iOS的动画效果类型及实现方法

实现iOS漂亮的动画效果主要有两种方法, 一种是UIView层面的, 一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层也是使用CATransition进行了封装,它只能用于一些简单的.常用的效果展现,这里写一个常用的示例代码,供大家参考. [UIView beginAnimations:@"Curl"context:nil];//动画开始 [UIView setAnimationDuration:0.75]; [UIView se

Android弹幕功能实现,模仿斗鱼直播的弹幕效果

转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/51933728 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新. 大家好,感觉好像已经很久没更新博客了.前段时间主要是忙于新书的事情,时间比较紧张.而现在新书已经完稿,剩下的事情就都是出版社的工作了,那么我又可以抽出时间来写写博客了. 记得之前有位朋友在我的公众号里问过我,像直播的那种弹幕功能该如何实现?如今直播行业确实是非常火爆

Android 自定义View修炼-自定义弹幕效果View

一.概述 现在有个很流行的效果就是弹幕效果,满屏幕的文字从右到左飘来飘去.看的眼花缭乱,看起来还蛮cool的 现在就是来实现这一的一个效果,大部分的都是从右向左移动漂移,本文的效果中也支持从左向右的漂移移动 效果. 二.效果图 废话不说,先来看看效果图吧~~ 三.实现原理方案 1.自定义ViewGroup-XCDanmuView,继承RelativeLayout来实现,当然也可以继承其他三大布局类哈 2.初始化若干个TextView(弹幕的item View,这里以TextView 为例,当然也

ios各种动画效果

ios各种动画效果 最普通动画: //开始动画 [UIView beginAnimations:nil context:nil];  //设定动画持续时间 [UIView setAnimationDuration:2]; //动画的内容 frame.origin.x += 150; [img setFrame:frame]; //动画结束 [UIView commitAnimations]; 连续动画:一个接一个地显示一系列的图像 NSArray *myImages = [NSArray arr