2009-08-26 4 views
12

मैं सोच रहा था कि कोको टच में एनिमेशन कैसे काम करते हैं। उदाहरण के लिए:[UIView startAnimations] कैसे काम करता है?

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0]; 

view1.alpha = 1.0; 
view2.frame.origin.x += 100; 

[UIView commitAnimations]; 

कैसे UIView दो दृश्य के गुणों में परिवर्तन पटरियों करता है?

मुझे संदेह है कि केवीओ का उपयोग किया जाता है, लेकिन क्या यह वास्तव में beginAnimations और commitAnimations कॉल के बीच हर विचार में परिवर्तनों का निरीक्षण करता है?

किसी भी अंतर्दृष्टि की सराहना की जाएगी!

उत्तर

12

एक सरलीकृत विवरण:

सभी दृश्यों के लिए सभी एनिमेशन एक भी ढेर पर नियंत्रित किया जाता है, beginAnimations:context: ढेर पर एक नया सक्रिय CAAnimationGroup आ जाएगी तथा commitAnimations मौजूदा सक्रिय एनीमेशन समूह पॉप करेगा।

यदि स्टैक पर एक सक्रिय एनीमेशन समूह है, तो एनिमेटेबल गुणों के लिए सभी सेटर्स उस संपत्ति को संभालने के लिए CAAnimation सबक्लास उदाहरण बनाएंगे और सक्रिय एनीमेशन समूह में जोड़ देंगे।

जब अंतिम एनीमेशन पॉप हो जाता है, तो इसे फिर से चलाया जाता है।

0

मेरा मानना ​​है कि यह पुरानी कोरएनीमेशन कॉल पर सिर्फ एक रैपर है। कोरग्राफिक्स एपीआई में देखें, आप देख सकते हैं कि कई कुंजी हैं जिन्हें आपको एक कुंजीपटल में सेट करना होगा, जबकि इन चाबियों के लिए प्रारंभ और समापन मूल्य प्रदान करते हैं।

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