利用EChart 画柱状图

代码下载:http://download.csdn.net/detail/qqmcy/6927265

DJColumnChartViewController.h

#import <UIKit/UIKit.h>
#import "EChart/EColumnChart.h"



@interface DJColumnChartViewController : UIViewController <EColumnChartDelegate, EColumnChartDataSource>
@property (strong , nonatomic) EColumnChart* m_eColumnChart;

@end

DJColumnChartViewController.m

#import "DJColumnChartViewController.h"
#import "EColumnDataModel.h"
#import "EColumnChartLabel.h"
#import "EFloatBox.h"
#import "EColor.h"
#import <stdlib.h>
@interface DJColumnChartViewController ()
@property (strong , nonatomic) NSArray* data;
@property (strong , nonatomic) EFloatBox* eFloatBox;
@property (strong , nonatomic) EColumn* eColumnSelected;
@property (strong , nonatomic) UIColor* tempColor;

@end

@implementation DJColumnChartViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    self.view.transform  = CGAffineTransformMakeRotation(M_PI / 2);
    
    NSMutableArray* temp = [NSMutableArray array];
    for (int i = 0; i < 20; i++) {
        int value = arc4random() % 100;
        EColumnDataModel* eColumnDataModel = [[EColumnDataModel alloc] initWithLabel:[NSString stringWithFormat:@"%d",i] value:value index:i unit:@"kwh"];
        [temp addObject:eColumnDataModel];
    }
    
    _data = [NSArray arrayWithArray:temp];
    _m_eColumnChart = [[EColumnChart alloc] initWithFrame:CGRectMake(0, 150, 300, 200)];
    [_m_eColumnChart setColumnsIndexStartFromLeft:YES];
    [_m_eColumnChart setShowHighAndLowColumnWithColor:YES];
    _m_eColumnChart.delegate = self;
    NSLog(@"delegate = %@",_m_eColumnChart.delegate);
    _m_eColumnChart.dataSource = self;
    [self.view addSubview:_m_eColumnChart];
    
    
    
    
}
#pragma -mark- EColumnChartDataSource

-(NSInteger)numberOfColumnsInEColumnChart:(EColumnChart *)eColumnChart
{
    return [_data count];
}

-(NSInteger)numberOfColumnsPresentedEveryTime:(EColumnChart *)eColumnChart
{
    return 12;
}

-(EColumnDataModel*)highestValueEColumnChart:(EColumnChart *)eColumnChart
{
    EColumnDataModel* maxDataModel = nil;
    float maxValue = -FLT_MIN;
    for (EColumnDataModel* dataModel in _data) {
        if (dataModel.value > maxValue) {
            maxValue = dataModel.value;
            maxDataModel = dataModel;
        }
    }
    return maxDataModel;
}

-(EColumnDataModel*)eColumnChart:(EColumnChart *)eColumnChart valueForIndex:(NSInteger)index
{
    if (index >= [_data count] || index < 0) {
        return nil;
    }
    return [_data objectAtIndex:index + 1];
}

#pragma -mark- EColumnChartDelegate
- (void)eColumnChart:(EColumnChart *) eColumnChart
             didSelectColumn:(EColumn *) eColumn
{
    NSLog(@"Index: %d Value: %f",eColumn.eColumnDataModel.index,eColumn.eColumnDataModel.value);
    if (_eColumnSelected) {
        _eColumnSelected.barColor = _tempColor;
    }
    
    _eColumnSelected = eColumn;
    _tempColor = eColumn.barColor;
    eColumn.barColor = [UIColor blackColor];
    
    
    
}

-(void)eColumnChart:(EColumnChart *)eColumnChart fingerDidEnterColumn:(EColumn *)eColumn
{
    NSLog(@"Finger did enter %d",eColumn.eColumnDataModel.index);
    CGFloat eFloatBoxX = eColumn.frame.origin.x + eColumn.frame.size.width * 1.25;
    CGFloat eFloatBoxY = eColumn.frame.origin.y + eColumn.frame.size.height * (1 - eColumn.grade);
    if (_eFloatBox) {
        [_eFloatBox removeFromSuperview];
        _eFloatBox.frame = CGRectMake(eFloatBoxX, eFloatBoxY, _eFloatBox.frame.size.width, _eFloatBox.frame.size.height);
        [_eFloatBox setValue:eColumn.eColumnDataModel.value];
        [eColumnChart addSubview:_eFloatBox];
    }
    else{
        _eFloatBox = [[EFloatBox alloc] initWithPosition:CGPointMake(eFloatBoxX, eFloatBoxY) value:eColumn.eColumnDataModel.value unit:@"kwh" title:@"Title"];
        _eFloatBox.alpha = 0.0;
        [eColumnChart addSubview:_eFloatBox];
        
    }
    
    
    eFloatBoxY -= (_eFloatBox.frame.size.height + eColumn.frame.size.width * 0.25f);
    _eFloatBox.frame = CGRectMake(eFloatBoxX, eFloatBoxY, _eFloatBox.frame.size.width, _eFloatBox.frame.size.height);
    [UIView animateWithDuration:0.5f delay:0 options:UIViewAnimationOptionTransitionNone animations:^{
        _eFloatBox.alpha = 1.0f;
    } completion:^(BOOL finished) {
        
    }];
    
}
- (void) eColumnChart:(EColumnChart *) eColumnChart
        fingerDidLeaveColumn:(EColumn *) eColumn
{
    NSLog(@"");
}

/** When finger leaves wherever in the chart,
 will trigger both if finger is leaving from a column */
- (void) fingerDidLeaveEColumnChart:(EColumnChart *)eColumnChart
{
    if (_eFloatBox) {
        [UIView animateWithDuration:0.5f delay:0 options:UIViewAnimationOptionTransitionNone animations:^{
            _eFloatBox.alpha = 0.0f;
            _eFloatBox.frame = CGRectMake(_eFloatBox.frame.origin.x, _eFloatBox.frame.origin.y + _eFloatBox.frame.size.height, _eFloatBox.frame.size.width, _eFloatBox.frame.size.height);
        } completion:^(BOOL finished) {
            [_eFloatBox removeFromSuperview];
            _eFloatBox = nil;
        }];
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜甲同学

感谢打赏,我会继续努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值