• IOS绘制渐变背景色折线图的一种尝试


    1.绘制折线图

         上次在群里看到一个折线图划的很漂亮,自己想实现一个这样的

    ,但是一直没什么头绪,不知道怎么做,就开始在网上查找划线,绘

    制渐变色这一块的内容,用最笨的方式,自己尝试的写了一些,也没

    有完全实现这些内容,权当是记录下学习的这块内容。

    2.实现的效果

    3.实现的代码

      
        //添加坐标的坐标点
        UIBezierPath * pathtemp=[[UIBezierPath alloc] init];
        [pathtemp moveToPoint:CGPointMake(10, 100)];
        [pathtemp addLineToPoint:CGPointMake(50, 90)];
        [pathtemp addLineToPoint:CGPointMake(100, 50)];
        [pathtemp addLineToPoint:CGPointMake(150, 80)];
        [pathtemp addLineToPoint:CGPointMake(200, 70)];
        [pathtemp addLineToPoint:CGPointMake(250, 60)];
        [pathtemp addLineToPoint:CGPointMake(300, 50)];
        [pathtemp addLineToPoint:CGPointMake(350, 100)];
        
        
        //把折线绘制到界面
        CAShapeLayer *arctemp = [CAShapeLayer layer];
        arctemp.path =pathtemp.CGPath;  //path->CGPath;
        arctemp.strokeColor = [UIColor purpleColor].CGColor;
        arctemp.lineWidth = 8;
        [self.view.layer addSublayer:arctemp];
        
         //绘制线条的动画
         CABasicAnimation *drawAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
         drawAnimation.duration            = 5.0;
         drawAnimation.repeatCount         = 1.0;
         drawAnimation.removedOnCompletion = NO;
         drawAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
         drawAnimation.toValue   = [NSNumber numberWithFloat:10.0f];
         drawAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
         [arctemp addAnimation:drawAnimation forKey:@"drawCircleAnimation"];
        
    
        
    //===================================================================================================================
        
        
        //绘制渐变色层
        CAGradientLayer *gradientLayer = [CAGradientLayer layer];
        gradientLayer.frame =CGRectMake(0, 0, 500, 400) ;// self.view.frame;
        gradientLayer.colors = @[(__bridge id)[UIColor colorWithRed:249.0/255.0 green:127.0/255.0 blue:127.0/255.0 alpha:1].CGColor ,
                                 (__bridge id)[UIColor colorWithRed:250.0/255.0 green:150.0/255.0 blue:150.0/255.0 alpha:1].CGColor,
                                 (__bridge id)[UIColor yellowColor].CGColor];
        gradientLayer.locations=@[@0.0,@0.2,@1.0];
        
        gradientLayer.startPoint = CGPointMake(0.5,0.5);
        gradientLayer.endPoint = CGPointMake(0.5,1);
      
        
        [self.view.layer addSublayer:gradientLayer];//加上渐变层
        
        
        
    //============第一种方式添加路径->这个是绘制渐变需要的
            UIBezierPath * path=[[UIBezierPath alloc] init];
            [path moveToPoint:CGPointMake(10, 100)];
            [path addLineToPoint:CGPointMake(10, 300)];
            [path addLineToPoint:CGPointMake(350, 300)];
            [path addLineToPoint:CGPointMake(350, 100)];
            [path addLineToPoint:CGPointMake(300, 50)];
            [path addLineToPoint:CGPointMake(250, 60)];
            [path addLineToPoint:CGPointMake(200, 70)];
            [path addLineToPoint:CGPointMake(150, 80)];
            [path addLineToPoint:CGPointMake(100, 50)];
            [path addLineToPoint:CGPointMake(50, 90)];
            [path closePath];
        
    //============第二种方式添加路径
    //  UIBezierPath* path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(10,10,100,100)];
        
        
    //============第三种方式添加path路径
    //    CGMutablePathRef path = CGPathCreateMutable();
    //    
    //    CGPathAddRect(path, nil, CGRectInset(self.view.bounds, 20, 120));
        
    
      
        
        
       
        
        
           CAShapeLayer *arc = [CAShapeLayer layer];
           arc.path =path.CGPath;
           arc.fillColor = [UIColor yellowColor].CGColor;
           arc.strokeColor = [UIColor yellowColor].CGColor;
           arc.lineWidth = 1;
           gradientLayer.mask=arc;
        
        
  • 相关阅读:
    Go语言 0 前言
    SVM支持向量机的基本原理
    支持向量机通俗介绍
    线程句柄和线程ID的区别
    分布式事务一致性,事务补偿实战
    ResultSet is from UPDATE. No Data.
    linux 批量kill进程
    mysql数据表拷贝
    Maven assembly 打包
    JS 删除对象属性
  • 原文地址:https://www.cnblogs.com/try-wyh/p/4834608.html
Copyright © 2020-2023  润新知