2016-08-26 61 views
6

需要为iOS中的漏斗图创建自定义控件(无论是在Swift还是Objective-C中)。在iOS中创建漏斗图表?

发现很少有图书馆吧:这里是链接:https://github.com/ayudasystems/funnel

规划使用BezierPath实现漏斗图。

请建议数据结构需要实现此控件。

**注 - 搜寻大量的文章,但力的发现来实现IOS漏斗图(几个职位是有,但答案是不正确或接受)

+0

如果你有代码示例,你也应该有c颂赞曾用来激发这一点。 –

+0

它的cocoapod库所以dint访问了很多功能,经过这些我创建控制 –

回答

2

enter image description here

你必须使用简单逻辑实现上面漏斗图。

有5个项目:A1,A2,A3,A4,A5和漏斗的高度。

& & A1 = 30%,A2 = 25%,A3 = 20%,A4 = 15%,A5 = 10%

Now distritribute items according to height % in funnel. So 

A1 = 0.3*200 = 60 
A2 = 0.25*200 = 50 
A3 = 0.2*200 = 40 
A4 = 0.15*200 = 30 
A5 = 0.1*200 = 20 
-------------------- 
Total   = 200 


On the basis of above calculated height:- 5 different BezierPath can be drawn . 

Above data can be generalised to 'n' items and 'x' Height . 

逻辑到计算高度分布

class HeightDistribution { 
    class func height(percentages: [Float] , TotalHeight:Float) -> [Float] 
     { 
     var heights = [Float]() 
     for percentage in percentages 
     { 
      let height = (percentage/100)*TotalHeight 
      heights.append(height) 
     } 
     return heights 
    } 
} 

Progress Demo Funnel Chart app || Swift3

0

“数据结构”应该是简单的确切的解决方案:一个介于0.0和100.0之间的值,每个值代表一个水平矩形带或一个漏斗部分的梯形,带有一个指示符,用于指示它从矩形变为梯形的位置,以及每个区段的颜色。

开始很简单,然后继续修饰图片,并在片段之间留有间隙,阴影等。制作了一个静态版本之后,您应该能够转移到图层来获取动画。

+0

任何引用或链接可以帮助我创建此。 –