美文网首页
iOS 折线图

iOS 折线图

作者: 安宇辛 | 来源:发表于2021-11-03 15:08 被阅读0次

一:话不多说先上效果图

折线图
二:实现
1借鉴网上的ZHLineChart可以实现折线图
https://github.com/hi-zhouyn/zhlinechart/
2然后根据自己的需要定制
1
#import "ZHLineChartView.h"
2
@property (nonatomic, strong) ZHLineChartView *lineView;
3
[self.lineView drawLineChart];//调用
4
- (ZHLineChartView *)lineView
{
    if (!_lineView) {
        _lineView = [[ZHLineChartView alloc] initWithFrame:CGRectMake(0, 15,self.width+32*2, 175)];
        _lineView.horizontalDataArr = [self getCurrentDayToLastServeDay];
        self.kdata = @[@0, @20, @16, @38, @28, @32, @47];
       //取数组的最大和最小
        _lineView.lineDataAry = self.kdata;
        NSArray *numbers = self.kdata;
        numbers = [numbers sortedArrayUsingSelector:@selector(compare:)];
        int max = [[numbers lastObject] intValue]/10;
        int min = [numbers[0] intValue]/10;
        if(max>1){
            max = (max+1)*10;
        }else{
            max = 10;
        }
        if(min>0){
            min = min*10;
        }else{
            min = 0;
        }
        _lineView.max = [NSNumber numberWithInt:max];
        _lineView.min = [NSNumber numberWithInt:min];
        _lineView.splitCount = 5;
        _lineView.angle = 0;
        _lineView.dataTextWidth = 100;
        _lineView.bottomOffset = 10;
        _lineView.textColor = [UIColor whiteColor];
        _lineView.horizontalBottomLineColor = [UIColor whiteColor];
        _lineView.dataTextColor = [UIColor colorWithRed:133/255.0 green:45/255.0 blue:224/255.0 alpha:1.0];
        _lineView.lineColor = [UIColor colorWithRed:133/255.0 green:45/255.0 blue:224/255.0 alpha:1.0];
        _lineView.circleStrokeColor = [UIColor colorWithRed:133/255.0 green:45/255.0 blue:224/255.0 alpha:1.0];
        _lineView.circleFillColor = [UIColor colorWithRed:133/255.0 green:45/255.0 blue:224/255.0 alpha:1.0];
        _lineView.toCenter = NO;
        _lineView.showColorGradient = NO;
        _lineView.addCurve = NO;
        _lineView.isShowHeadTail = NO;
        _lineView.edge = UIEdgeInsetsMake(25, 6, 20, 30);
        _lineView.backgroundColor = [UIColor clearColor];
        [self addSubview:_lineView];
    }
    return _lineView;
}

定制

                //画白色竖线
                UIBezierPath *linePath = [UIBezierPath bezierPath];
                   // 起点
                   [linePath moveToPoint:CGPointMake(CGRectGetMaxX(leftLabel.frame) + self.lineToLeftOffset, 15)];
                   // 终点
                   [linePath addLineToPoint:CGPointMake(CGRectGetMaxX(leftLabel.frame) + self.lineToLeftOffset, 140)];
                   
                   CAShapeLayer *lineLayer = [CAShapeLayer layer];
                   
                   lineLayer.lineWidth = self.horizontalBottomLineWidth;
                   lineLayer.strokeColor = self.horizontalBottomLineColor.CGColor;
                   lineLayer.path = linePath.CGPath;
//                   lineLayer.fillColor = nil; // 默认为blackColor
                   
                   [self.layer addSublayer:lineLayer];
hLineLayer.lineDashPattern = @[@(5),@(5)];//虚线显示
//获取当前日期开始的七天日期
-(NSMutableArray *)getCurrentDayToLastServeDay{
    NSMutableArray *weekArr = [[NSMutableArray alloc] init];
    NSDate *nowDate = [NSDate date];
    //计算从当前日期开始的七天日期
    for (int i = 0; i < 7; i ++) {
           //从现在开始的24小时
           NSTimeInterval secondsPerDay = i * 24*60*60;
           NSDate *curDate = [NSDate dateWithTimeInterval:-secondsPerDay sinceDate:nowDate];
           NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
           [dateFormatter setDateFormat:@"M-d"];
           NSString *dateStr = [dateFormatter stringFromDate:curDate];//几月几号
      
      
        [weekArr addObject:dateStr];
    }
    //倒序
    weekArr = (NSMutableArray *)[[weekArr reverseObjectEnumerator] allObjects];
    return weekArr;
}

相关文章

  • iOS折线图

    CGChartsView是一个很好用的第三方,但是作者源码并未公开,但是实现了大多数的折线图功能,使用Config...

  • ios 折线图

    总结一下最近项目中需要使用到的折线图的展示,首先说下折线图演示的一下几种情况1 当数据出现有正数和负数,那么折现就...

  • iOS折线图

    object-c折线,效果如图 主要其实就是画线。重写drawRect,再用CGContextRef。 重写ini...

  • iOS 折线图

    一:话不多说先上效果图 二:实现 1借鉴网上的ZHLineChart可以实现折线图 2然后根据自己的需要定制 定制

  • iOS绘图入门--手把手教你画折线图

    适用人群:iOS开发人员。本文内容:使用UIBezierPath和CAShareLayer绘制简单的折线图。 平常...

  • echarts插件-图表宽度自适应

    单个折线图 多个折线图

  • iOS绘制折线图

    折线图的绘制网上有很多不错的三方可以借鉴,譬如# PNChart、# SCChart等等,如果这些适合你的项目的话...

  • iOS动画折线图

    效果图: 后端传一个数组,然后根据数组生成点的坐标。所以解析下,我们需要画的有点,点和点之间的线,以及背景和下面的...

  • 简单iOS折线图

    先看效果图 所用框架 CAShapeLayer与UIBezierPath配合画线。画线的两种方法: DrawRec...

  • ios 简单折线图

    缘分已到,这是一个简单的折线图,带阴影有点击事件,有刷新 ,回调写好了,不行就自己加点,改点吧,人之患好为人师,所...

网友评论

      本文标题:iOS 折线图

      本文链接:https://www.haomeiwen.com/subject/fopzaltx.html