2012-07-11 15 views
6

मैं एक UIBezierPath (एक चक्र) के साथ संवर्द्धित बनाया है:UIBezierPath - भरें एनिमेट

[circlePath addArcWithCenter:clockCenter radius:radius startAngle:angleRadians endAngle:1.5*M_PI clockwise:YES]; 
... 
[circlePath closePath]; 
[COLOR_CIRCLE setFill]; 
[circlePath fill]; 

कभी कभी, मैं भरने चेतन चाहते हैं इतना है कि यह एक दूसरे लेता है पूरी तरह से भरने के लिए और यह पथ का अनुसरण बनाया गया था (घड़ी की दिशा में)। इसे पूरा करने की पसंदीदा विधि क्या है? अभी मैं कोर एनीमेशन सोच रहा हूं लेकिन मुझे आशा है कि एक भरना होगा: डेले या कुछ ऐसा है कि मैंने ठोकर खाई नहीं है। TIA।

+1

मैंने थोड़ी देर पहले कोर एनीमेशन प्रस्तुति के लिए कुछ ऐसा किया था। [नमूना कोड] (https://github.com/d-ronnqvist/cocoaheads-coreanimation-samplecode/blob/master/PieChartProgress/PieChartProgress/DRPieChartProgressView.m) गिटहब में उपलब्ध है और इसमें बहुत सारी टिप्पणियां हैं। –

+3

आप [मेरा जवाब] [http://stackoverflow.com/a/8021051/608157) [आईफोन कोर एनीमेशन - एक सर्कल ड्राइंग] के लिए भी देख सकते हैं (http://stackoverflow.com/q/7991086/608157) –

उत्तर

2

आप इस कोशिश कर सकते:

एक CAShapeLayer जिसका path अपने आकार के लिए सेट है बनाएँ। इस कैशपलेयर को एक और परत के लिए मुखौटा के रूप में प्रयोग करें जिसमें आप एक भरे आर्क/सर्कल को आकर्षित करते हैं। फिर 0º से 360º तक आर्क/सर्कल आर्क कोण को एनिमेट करें। यह आपके इच्छित प्रभाव का अनुमान लगा सकता है।

मुझे जितना चाहें उतना भरने के लिए "अंतर्निर्मित" तरीका नहीं मिल रहा है। स्ट्रोक को एनिमेट करने का एक अंतर्निहित तरीका है, हालांकि:

एक UASiew का उपयोग करके एक CAShapeLayer का समर्थन करें। CAShapeLayer में path संपत्ति है। फिर आप परत के strokeStart और/या strokeEnd गुणों पर एक एनीमेशन लागू कर सकते हैं।

+0

क्षमा करें - बस आपका मार्ग एक सादा सर्कल है, एक मनमाना आकार नहीं है। यह जवाब एक मनमाना आकार के लिए है। आपको सादे सर्कल के लिए मास्किंग चरण को हटा देना चाहिए। डेविड का जवाब देखें – nielsbot

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