#霓虹灯创建流程

作者: 向日葵_wwx | 来源:发表于2016-01-12 20:28 被阅读72次

霓虹灯创建流程:
<一>:因为它是一个自定义视图,所以必须在它他的初始化方法中,创建,使用for循环创建多个UIView:
1、坐标设置:X和Y坐标设置成零,因为最终是要让他显示在屏幕中心的,即使在这块给X和Y设置了值,最终设置它的center点,这块的设置也是无效的,
2、设置宽:霓虹灯的效果是从大到小以循环的方式显示,所以宽为,第一个View的宽减去间隔30再乘以i,(这块的i就代表的时循环的次数,意思就是说每循环一次。减一次30.这样就不会重叠)。
3、设置高:所以高为,第一个View的高减去间隔30再乘以i,(这块的i就代表的是循环的次数,意思就是说每循环一次。减一次30.这样就不会重叠)。
4、设置视图的形状(有圆形、矩形)如果不设置这个方法时,默认是矩形,因为每个视图本身就是一个矩形view.layer.cornerRandius = CGRectGetWidth(view.frame)/2;
5、设置定时器:视图创建设置属性完成之后,就得给视图设置定时器了,其实和BUtton的按钮方法差不多,只不过这个方法是系统自己调用的,不用我们自己手动点击实现此方法。
[NSTimer scheduledTimerWithTimeInterval:0.12 target:self selector:@selector(changeColor) userInfo:nil repeats:YES];
6、定时器的回调方法:
(1)、先将视图由小到大进行一次视图交换,也就是循环一次,循环的时候时根据颜色进行循环的,所以必须先得到视图的颜色,然后交换视图的颜色即可

7、具体代码实现如下
//霓虹灯的初始化方法

  • (instancetype)initWithFrame:(CGRect)frame{
    if (self = [super initWithFrame:frame]) {
    for (int i = 0; i < 17; i++) {
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth(frame)-30 *i, CGRectGetHeight(frame)-30 *i)];
    view.backgroundColor = RGBA;
    view.center = self.center;
    view.tag = 1000+i;
    // 将视图设置为圆形
    view.layer.cornerRadius = CGRectGetWidth(view.frame)/2;
    [self addSubview:view];
    // 定时器创建
    * @param NSTimeInterval :设置多长时间调用一次回调方法,单位为妙
    * target:执行回调方法的目标
    * selector:回调方法
    * userInfo:如果回调方法中加了冒号,就表示有参数,这个参数就是userInfo
    repeats:是否重复执行,YES为执行,NO为不执行
    }
    [NSTimer scheduledTimerWithTimeInterval:0.12 target:self selector:@selector(changeColor) userInfo:nil repeats:YES];
    }
    return self;
    }
    //定时器的回调方法
    -(void)changeColor
    {
    //每执行一次,将由小到大的视图交换一遍
    for (int i=0; i<16; i++)
    {
    第一种扩散模式:由外向内扩散
    //得到某一个视图的颜色,并且让这个霓虹灯的颜色是由外向内扩散的
    // UIColor *myColor=[[self viewWithTag:1016-i]backgroundColor];
    // 得到某一个视图的颜色,并且让这个霓虹灯的颜色是由外向内扩散的
    // UIColor *nextColor=[[self viewWithTag:1016-i-1]backgroundColor];
    //
    // [[self viewWithTag:1016-i]setBackgroundColor:nextColor];
    // [[self viewWithTag:1016-i-1]setBackgroundColor:myColor];

    第二种扩散模式:由内向外扩散的
    // 得到某一个视图的颜色,并且让这个霓虹灯的颜色是由内向外扩散的
    UIColor *myColor=[[self viewWithTag:1000+i]backgroundColor];
    得到某一个视图的颜色,并且让这个霓虹灯的颜色是由内向外扩散的
    UIColor *nextColor=[[self viewWithTag:1000+i+1]backgroundColor];
    [[self viewWithTag:1000+i]setBackgroundColor:nextColor];
    [[self viewWithTag:1000+i+1]setBackgroundColor:myColor];

相关文章

  • #霓虹灯创建流程

    霓虹灯创建流程:<一>:因为它是一个自定义视图,所以必须在它他的初始化方法中,创建,使用for循环创建多个UIVi...

  • Activiti 流程

    Activiti 流程 流程引擎 流程启动,运行的具体环境。 创建流程引擎 创建流程引擎时,会在classpath...

  • 3、服务端Channel创建

    课程大纲 1、服务端Channel创建流程2、源码执行流程 1、服务端Channel创建流程

  • Android组件之Paging的使用及原理

    流程 ● 创建DataSource● 创建Factory● 创建Adapter相关类● 创建LivePagedLi...

  • Android组件Paging的使用及原理

    流程 ● 创建DataSource● 创建Factory● 创建Adapter相关类● 创建LivePagedLi...

  • Retrofit的使用之设计模式

    使用的设计模式有: 动态代理 门面模式 适配器模式创建流程创建流程 创建Retrofit 首先构造retrofit...

  • 证书管理

    证书创建流程:

  • Activiti工作流框架——数据库分析

    创建表 部署流程定义 删除流程定义 启动流程实例 完成个人任务 创建表 会默认在act_ge_property属性...

  • iOS 框架的创建

    iOS框架的创建(一) —— 一个详细的框架创建流程(一)iOS框架的创建(二) —— 一个详细的框架创建流程(二)

  • 01.RACSignal

    RACSignal创建流程 创建信号 - createSignal() 订阅信号 - subscribeNext(...

网友评论

    本文标题:#霓虹灯创建流程

    本文链接:https://www.haomeiwen.com/subject/ezlckttx.html