//
|
// JHWaveChart.m
|
// JHChartDemo
|
//
|
// Created by cjatech-简豪 on 16/4/13.
|
// Copyright © 2016年 JH. All rights reserved.
|
//
|
|
#import "JHWaveChart.h"
|
|
@interface JHWaveChart()
|
|
|
@property (nonatomic,strong) NSArray * yLineDataArr;
|
@property (assign , nonatomic) JHWaveChartType waveChartType ;
|
@property (assign , nonatomic) CGFloat perXLength ;
|
@property (assign , nonatomic) CGFloat xLength ;
|
@property (assign , nonatomic) CGFloat yLength ;
|
@property (assign , nonatomic) CGPoint originPoint ;
|
@end
|
|
|
@implementation JHWaveChart
|
|
|
-(instancetype)initWithFrame:(CGRect)frame andType:(JHWaveChartType)waveChartType{
|
|
if (self = [super initWithFrame:frame]) {
|
self.backgroundColor = [UIColor whiteColor];
|
_waveChartType = waveChartType;
|
_xLineDataArr = @[@0,@1,@2,@3,@4,@5,@6,@7];
|
_xAndYLineColor = [UIColor darkGrayColor];
|
self.contentInsets = UIEdgeInsetsMake(10, 10, 10, 10);
|
}
|
|
return self;
|
}
|
|
|
|
|
- (void)countPerXandPerYLength{
|
_xLength = CGRectGetWidth(self.frame) - self.contentInsets.left - self.contentInsets.right;
|
_yLength = CGRectGetHeight(self.frame) - self.contentInsets.top - self.contentInsets.bottom;
|
|
if (_xLineDataArr.count) {
|
_perXLength = _xLength/(_xLineDataArr.count-1);
|
}
|
|
switch (_waveChartType) {
|
case JHWaveChartUpType:
|
{
|
_originPoint = P_M(self.contentInsets.left, CGRectGetHeight(self.frame) - self.contentInsets.bottom);
|
|
}
|
break;
|
case JHWaveChartUpAndDownType:
|
{
|
|
}
|
break;
|
default:
|
break;
|
}
|
|
|
}
|
|
|
- (void)drawRect:(CGRect)rect {
|
|
CGContextRef context = UIGraphicsGetCurrentContext();
|
[self countPerXandPerYLength];
|
if (_xLineDataArr.count) {
|
/* 绘制X轴 */
|
[self drawXLineWithContext:context];
|
|
}
|
|
|
}
|
|
/**
|
* 绘制X轴
|
*
|
*/
|
- (void)drawXLineWithContext:(CGContextRef)contex{
|
|
[self drawLineWithContext:contex andStarPoint:P_M(self.contentInsets.left, CGRectGetHeight(self.frame)-self.contentInsets.bottom) andEndPoint:P_M(CGRectGetWidth(self.frame)-self.contentInsets.right, CGRectGetHeight(self.frame)-self.contentInsets.bottom) andIsDottedLine:NO andColor:_xAndYLineColor];
|
|
for (NSInteger i =0 ; i<_xLineDataArr.count ; i++) {
|
|
[self drawLineWithContext:contex andStarPoint:P_M(i*_perXLength, _originPoint.y) andEndPoint:P_M(i*_perXLength, _originPoint.y-3) andIsDottedLine:NO andColor:_xAndYLineColor];
|
CGFloat len = [self getTextWithWhenDrawWithText:_xLineDataArr[i]];
|
[self drawText:_xLineDataArr[i] andContext:contex atPoint:P_M(i*_perXLength-len/2+_originPoint.x, _originPoint.y+5) WithColor:_xAndYLineColor andFontSize:8];
|
|
}
|
|
}
|
|
-(void)setValueDataArr:(NSArray *)valueDataArr{
|
|
|
_valueDataArr = valueDataArr;
|
|
[self setNeedsDisplay];
|
|
}
|
|
|
@end
|