2012-01-14 4 views
6

मैं यह देखने का तरीका ढूंढ रहा हूं कि कोई दृश्य एनिमेटेड है या नहीं।क्या आईओएस में चल रहे एनीमेशन का पता लगाने का कोई तरीका है?

बिंदु में मामला: मैंने प्रदर्शन के लिए छायापाथ निर्दिष्ट करते हुए, दृश्य की परत पर एक छाया लागू की है। जब दृश्य का आकार बदलता है, तो छाया को साथ एनिमेट करना चाहिए। मैं दृश्य के फ्रेम का निरीक्षण कर सकता हूं, और उसके अनुसार परत के छायापाथ को बदल सकता हूं। लेकिन जब दृश्य आकार बदल रहा है, तब परिवर्तन आगे बढ़ता है क्योंकि परिवर्तन एनिमेटेड नहीं है।

मुझे पता है कि CABasicAnimation का उपयोग करके छायापैथ को एनिमेट कैसे करें, लेकिन मुझे एक चल रहे एनीमेशन के गुणों को जानने की आवश्यकता है ताकि मैं उन्हें अपने एनीमेशन पर भी लागू कर सकूं (ज्यादातर: अवधि, आसान)।

यह एक ढांचे-प्रकार घटक में है, इसलिए मैं यह नहीं मान सकता कि मैं पहले से ही अवधि और आसानी से गुणों को जानता हूं।

फ्रेम देखने पर प्रारंभिक/चल रही एनीमेशन का पता लगाने का कोई तरीका है?

उत्तर

12

आप

[yourView.layer animationForKey:@"key"] 

बुला सभी कुंजियों प्राप्त करने के लिए से जानते हुए भी यह कुंजी है सभी एनिमेशन विशेष दृश्य की परत से जुड़ी प्राप्त कर सकते हैं के लिए कुछ एनीमेशन है, फोन

NSArray* keys = [yourView.layer animationKeys]; 
+0

आह महान। धन्यवाद! – Inferis

0

मुझे लगता है कि सबसे अच्छा अभ्यास करना चाहिए हो ....

UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.7]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 

.....your code 
// Set animation did stop selector before committing the animations 

[UIView setAnimationDidStopSelector:@selector(animationFinished:)]; 

[UIView commitAnimations];