iOS 甘特图的实现

iOS 甘特图的实现iOS 甘特图的实现iOS 甘特图的实现

 

  完成之后的界面基本上就是这样 !

首先先说说主要的功能吧 

1.首先个界面看起来就像是倒着的图表,有X,Y轴,并且有标签来表示坐标轴所代表的含义

2.可通过缩放手势对视图进行缩放,在缩放的过程中 X轴的刻度会发生变化,共有三种类型的展示,分别是 日,周,月。也可点击按钮来改变视图的类型。

3.通过每个任务的起始和结束的时间来绘制绿色的矩形,并且绘制箭头和折线,将视图连接。

 

对于这样的功能描述 我们也可以推断出大概可以抽象出来的几个类

1.就是承载 甘特图的可以滑动的一个 UIScrollView的子类

2.就是绿色的表示任务进度的 视图 Cell

3.绘制 X , Y 轴的以及承载 进度视图的 视图 ganttView

4.X轴的标签视图 Xlabel

 

基本上就是这个思路 

   cell 中有一个绿色的子视图,然后使用drawRect绘制一个小的三角形在绿色视图的左边 

   cell会有三个点的属性  分别记录的是链接两个cell的折线的转折点;

  甘特图有三种类型 

  分别是以 日 周 月来显示

所以需要设置一个枚举值,当是视图的缩放比改变时 就修改甘特图的类型然后 重新加载数据源 重新布局视图  

 

 

ok  这就是甘特图的实现