zoukankan      html  css  js  c++  java
  • RCLighting

    RCLighting

    https://github.com/RidgeCorn/RCLighting

    效果:

    真机测试的效率:

    看了源码,其实原理很简单:

    ================================

    1. 实现UIView的category

    2. 继承了一个CALayer

    3. 将这个继承的CALayer插入到UIView的subLayer中

    4. 对这个layer进行动画操作

    ================================

    源码:

    //
    //  RootViewController.m
    //  Lighting
    //
    //  Copyright (c) 2014年 Y.X. All rights reserved.
    //
    
    #import "RootViewController.h"
    #import "RCLighting.h"
    
    @interface RootViewController ()
    
    @end
    
    @implementation RootViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.view.backgroundColor = [UIColor blackColor];
        
        // 辉光view
        UIView *showView          = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 50)];
        showView.alpha            = 0.8f;
        showView.backgroundColor  = [UIColor redColor];
        showView.center           = self.view.center;
        [self.view addSubview:showView];
        [showView showLightingWithColors:@[[UIColor brownColor],
                                           [UIColor greenColor],
                                           [UIColor cyanColor],
                                           [UIColor orangeColor],
                                           [UIColor purpleColor],
                                           [UIColor magentaColor],
                                           [UIColor redColor],
                                           [UIColor yellowColor],
                                           [UIColor blueColor]]];
        
        // 中间显示字体
        UILabel *label      = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 100)];
        label.textAlignment = NSTextAlignmentCenter;
        label.textColor     = [UIColor whiteColor];
        label.font          = [UIFont fontWithName:@"HelveticaNeue-UltraLight"
                                              size:30.f];
        label.text          = @"YouXianMing";
        label.center        = self.view.center;
        [self.view addSubview:label];
    }
    
    @end

    注意哦,源码中有用到POP库动画

  • 相关阅读:
    遍历及线索化二叉树
    二叉树
    程序的内存布局
    C语言一些易混淆的概念
    C语言标准库函数memcpy和memmove的区别以及内存重叠问题处理
    柔性数组
    一个基于QT简单登录对话框(带验证码功能)
    Qt中的布局管理器
    Qt中的标准对话框
    一个基于QT简单登录对话框
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/3832920.html
Copyright © 2011-2022 走看看