渐变变速控制模块

Posted by DragonLi on August 12, 2017

渐变变速控制模块

CAGradientLayer

  • 不同的 frame 可以实现不同的宽度
  • gradLayer.colors 实现不同的颜色
  • gradLayer.startPoint和gradLayer.endPoint都是0.0和1.0之间控制是横向还是竖向
-(CAGradientLayer *)setChangColorWithView:(UIView *)view andColorStart:(UIColor *)startColor andEndColor:(UIColor *)endColor randNumber:(CGFloat)randNumber{
    CAGradientLayer *gradLayer = [CAGradientLayer layer];
    gradLayer.frame =CGRectMake(0, 0, randNumber *DynamicWidth, 25);
    gradLayer.colors = @[(__bridge id)startColor.CGColor,(__bridge id)endColor.CGColor];
    gradLayer.startPoint = CGPointMake(0.0, 1.0);
    gradLayer.endPoint = CGPointMake(1.0, 1.0);
    return gradLayer;
}

self.controlView.layer.sublayers设定

CGFloat value = arc4random_uniform(98)/100.0;
            UIColor * fixColor = [UIColor colorWithRed:228 / 255.0 green:2 / 255.0 blue:20 / 255.0 alpha:1];
            UIColor * preColor = [UIColor colorWithRed:40 / 255.0 green:127 / 255.0 blue:224 / 255.0 alpha:1];
            CAGradientLayer *layer = [self setChangColorWithView:self.controlView andColorStart:preColor andEndColor:fixColor randNumber:value];
            self.controlView.layer.sublayers = nil;
            [self.controlView.layer addSublayer:layer];

基本上实现了简单的渐变,实际项目中需求必然复杂,可以通过不同参数调度即可.