之前有一个需求要求写一个柱状图, 扒了好多代码没有合适的, 就从 code4App 上找了一个稍微有点相似的 Demo 进行了一些修改 (时间有点久, 具体 demo 地址没有找到), 希望对大家有点帮助
简单的调用代码如下:
- -(void)creatChart{
- JHColumnChart *column = [[JHColumnChart alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 300)];
- column.backgroundColor = [UIColor redColor];
- column.valueArr= @[
- @[@10],
- @[@20],
- @[@8],
- @[@50],
- @[@22],
- @[@34],
- @[@9],
- @[@22],
- @[@34]
- ];
- column.originSize=CGPointMake(30,30);
- }
可设置的一些属性:
- // 峰值
- //@property (nonatomic,assign) CGFloat maxHeight1;
- // 柱状图数组的颜色
- @property(nonatomic,strong)NSArray * columnBGcolorsArr;
- //y 轴的值
- @property (nonatomic, strong) NSArray * valueArr;
- // 整个大柱状图的背景颜色
- @property(nonatomic,strong)UIColor * bgVewBackgoundColor;
- // 列间距, 非连续的默认是 5
- @property (nonatomic, assign) CGFloat typeSpace;
- // 圆柱宽度
- @property (nonatomic, assign) CGFloat columnWidth;
- // 是否需要 x 轴 y 轴
- @property (nonatomic, assign) BOOL needXandYLine;
- //y 轴虚线指导颜色
- @property (nonatomic, strong) UIColor * dashColor;
- // 左下脚距离 x,y 的起点
- @property (nonatomic, assign) CGPoint originSize;
- // 外面传过来的线的值, 转变成在屏幕的位置传过来
- @property (nonatomic, strong)NSArray *jingJieXianArr;
- // 盛放数据数组 跟数据一对一 放到另一个数组里
- @property (nonatomic, strong)NSArray *isKongArr;
- // 画警戒线
- column.jingJieXianArr=@[@50,@20];
- // 设置每个柱的宽度 默认显示 8 个
- column.columnWidth=20;
- column.typeSpace=20;
- column.bgVewBackgoundColor = [UIColor clearColor];
- // 开始动画
- [columnshowAnimation];
- [self.viewaddSubview:column];
下面是 demo 地址, 因为按照需求写完之后从项目中抠出的一部分, 所以有点乱, 勿喷, 哈哈...
GitHub - baidi510/MYProject https://github.com/baidi510/MYProject.git 或者 自定义动态柱状图. zip_免费高速下载 | 百度网盘 - 分享无限制 https://pan.baidu.com/s/1Sc7wCMqrbV2DxZl5To0KHQ
来源: http://www.jianshu.com/p/82b5fb4b09ae