iOS UILabel闪烁字体实现


//根据@吖了个峥 写


 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(30, 15, 120,20)];

    label.text = @"测试";

    [label sizeToFit];

    [self.view addSubview:label];

    

    CAGradientLayer *gradientLayer = [CAGradientLayer layer];

    gradientLayer.frame = label.frame;

    gradientLayer.colors = @[(id)[self randomColor].CGColor,(id)[self randomColor].CGColor,(id)[self randomColor].CGColor];

    [self.view.layer addSublayer:gradientLayer];

    

    _gradientLayer = gradientLayer;

    

    

    gradientLayer.mask = label.layer;

    

    label.frame = gradientLayer.bounds;

    

    CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(textColorChange)];

    

    [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];





// 随机颜色方法

-(UIColor *)randomColor{

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

}


// 定时器触发方法

-(void)textColorChange {

    _gradientLayer.colors = @[(id)[self randomColor].CGColor,

                              (id)[self randomColor].CGColor,

                              (id)[self randomColor].CGColor,

                              (id)[self randomColor].CGColor,

                              (id)[self randomColor].CGColor];

}



你可能感兴趣的:(iOS UILabel闪烁字体实现)