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库动画

  • 相关阅读:
    019. Remove Nth Node From End of List
    021.Merge Two Sorted Lists
    自定义starter
    servlet里面转发与重定向
    贪婪模式与非贪婪模式
    localstack 线程隔离
    Algorithm & Data structure
    some interview question
    阿里-菜鸟国际-出口大团队招新啦
    JDK8漫谈——集合更强大
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/3832920.html
Copyright © 2011-2022 走看看