2009-04-24 24 views
7

मेरे प्रश्न को जितना संभव हो सके वाक्यांश के लिए, क्या एक स्टॉप तक बार-बार दोहराने के लिए कोर एनीमेशन अनुक्रम बनाने का कोई तरीका है?कोर एनीमेशन ... चक्रीय एनिमेशन?

विशेष रूप से, मैं एक कस्टम क्लास बना रहा हूं जिसे मैं एक-स्टार्ट और -स्टॉप विधि चाहता हूं जो इसे पल्सेट करने का कारण बनता है। पल्स के लिए एनीमेशन कोड लिखना समस्या नहीं है, बल्कि, इसे दोहराए जाने के लिए कैसे?

किसी भी उत्तर के लिए अग्रिम धन्यवाद!

उत्तर

15
the documentation के अनुसार

, आप इसे एक बहुत बड़े repeatCount साथ एक एनीमेशन बनाने के द्वारा कर (प्रलेखन से कुछ अंश कोड मैं से जुड़ा हुआ):

// create the animation that will handle the pulsing. 
CABasicAnimation* pulseAnimation = [CABasicAnimation animation]; 

// over a one second duration, and run an infinite 
// number of times 
pulseAnimation.duration = 1.0; 
pulseAnimation.repeatCount = HUGE_VALF; 

// we want it to fade on, and fade off, so it needs to 
// automatically autoreverse.. this causes the intensity 
// input to go from 0 to 1 to 0 
pulseAnimation.autoreverses = YES; 

संपादित: ओपी एनीमेशन को रोकने के लिए पूछा । दस्तावेज में next paragraph से:

आप एनीमेशन और पैरामीटर के रूप में एक पहचानकर्ता गुजर, लक्ष्य परत करने के लिए एक addAnimation:forKey: संदेश भेजने द्वारा एक स्पष्ट एनीमेशन शुरू करते हैं। एक बार लक्ष्य परत में जोड़ा गया है, तो एनीमेशन पूर्ण होने तक स्पष्ट एनीमेशन चलाएगा, या परत से हटा दिया गया है। पहचानकर्ता पर एक एनीमेशन जोड़ने के लिए प्रयोग किया जाता है, यह परत removeAnimationForKey: पर आक्रमण करने के लिए भी प्रयोग की जाती है। परत को removeAllAnimations संदेश भेजकर परत के लिए सभी एनिमेशन को रोक सकता है।

+3

आपके द्वारा चिपकाए गए कोड नमूने में टिप्पणी के विपरीत, 1e100 अनंत नहीं है - यह केवल 10 ** 100 है। गणित में परिभाषित इन्फिनिटी स्थिर, बेहतर होगा। –

+0

लेकिन अगर मैं ऐसा करता हूं, तो मैं एनीमेशन को कमांड पर कैसे रोकूं? – cemulate

+0

उत्तर में जवाब दिया क्योंकि टिप्पणियों में पर्याप्त जगह नहीं है। –

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