2016-08-26 12 views
6

आईओएस में फनल चार्ट के लिए कस्टम नियंत्रण बनाने की आवश्यकता है (या तो स्विफ्ट या उद्देश्य - सी में)।आईओएस में फनल चार्ट बनाना?

मिले इसके लिए कुछ पुस्तकालय: https://github.com/ayudasystems/funnel

योजना BezierPath उपयोग करने के लिए कीप चार्ट लागू करने के लिए: यहाँ की कड़ी है।

कृपया डेटा संरचना का सुझाव दें जो इस नियंत्रण को लागू करने की आवश्यकता है।

** ध्यान दें - पद लेकिन सहारे की खोज बहुत ios में कीप चार्ट (कुछ पदों देखते हैं लेकिन उत्तर सही या स्वीकार नहीं कर रहे हैं)

+0

यदि आप कोड का नमूना है, तो आप भी ग होना चाहिए ode उस जनरेट करने के लिए प्रयोग किया जाता है। –

+0

इसकी कोकोपॉड लाइब्रेरी इतनी अधिक कार्यक्षमता तक पहुंच गई, इनके माध्यम से जाने के बाद मैं नियंत्रण बना रहा हूं –

उत्तर

2

enter image description here

आप सरल तर्क उपयोग करने के लिए कीप चार्ट ऊपर लागू करने के लिए की है।

5 आइटम हैं: A1, A2, A3, A4, A5 और कीप की ऊंचाई है।

& & ए 1 = 30%, ए 2 = 25%, ए 3 = 20%, ए 4 = 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

कोई संदर्भ या लिंक मुझे इसे बनाने में मदद कर सकता है। –

संबंधित मुद्दे