本篇文章主要通过简单的分析JSChartView,来分享下一种提高提高团队配合效率的思路。
JSChartView可以通过GitHub下载JSChartView.
JSChartView这是一个简单的折线图,基于Quartz2D来进行绘图。
至于说能提高团队效率,就是说这是绘制出来的折线图大家都能用,而且折线图的趋势是大家来掌控的,只要你的团队成员为他传入不同的值,他就能绘画出趋势出来,根本不用担心你里面是怎么样画的。当然提高效率还希望怎么让你的队友轻松的传入呢?我们都知道代理是一种提高团队协作的很好方法,鉴于这个,在JSChartView模仿了TableView的DataSource样式,只要你Return 了什么样的值,他就画了什么东西。
所以JSChartView关键是使用DataSource让用户来传入自己想要的图表值,这只是一种思路,
来说说JSChartView的代码:
// --------------------- 数据源方法 -------------------------
@protocol JSChartViewDataSource <NSObject>
@required
/**
* 总用有多少行
*
* @param chartView JSChartView
*
* @return 返回多少行 (x 数量)
*/
-(NSInteger)numberOfItemCountInchartView:(JSChartView *)chartView;
/**
*
*
* @param chartView JSChartView
* @param index x多少
*
* @return 返回 每一行的值 (y 值)
*/
-(CGFloat)chartView:(JSChartView *)chartView valueAtIndex:(NSInteger )index;
@optional
/**
* 描述视图
*/
- (UIView *)chartView:(JSChartView *)chartView descriptionViewAtIndex:(NSInteger)index;
/**
* x轴上的值
*/
- (NSString *)chartView:(JSChartView *)chartView horizontalTitleAtIndex:(NSInteger)index;
/**
* 每一行的文字排列位置
*
*/
- (HorizontalTitleAlignment)chartView:(JSChartView *)chartView horizontalTitleAlignmentAtIndex:(NSInteger)index;
@end
// --------------------- 代理方法 -------------------------
@protocol JSChartViewDelegate <NSObject>
@optional
/**
* 当手指 点击 移动到相应的index上的时候 (暂时不用)
*/
- (void)chartView:(JSChartView *)chartView didMovedToIndex:(NSInteger)index;
@end
看代码和注释 我们知道像TableView一样我们有DataSource和Delegate . 在DataSource中我们也有2个required 和 几个optional。根据不同的传入这些值来画出一张你想要的折线图!