शुरू करने से पहले एक आईफोन एनीमेशन कंटेनर दृश्य को संशोधित करना मैं एक कार्ड गेम में कुछ बुनियादी एनीमेशन जोड़ रहा हूं जिस पर मैं काम कर रहा हूं। (मेरा पहला आईफोन ऐप।)एनीमेशन
मैं कस्टम यूआईवी व्यू क्लास "एनीमेशन कोंटेनर" बना रहा हूं, जो छवि 1 से छवि 2 तक फिसलता है, जबकि rect1 से rect2 तक चलता है। मेरा अंतिम इरादा इन चारों कंटेनरों को एक साथ अपने संक्रमण करने के लिए है।
मेरी समस्या यह है कि एनीमेशन छवि 1 नहीं दिखा रहा है ... इसलिए फ्लिप संक्रमण का केवल अंतिम भाग दिखाई देता है।
हालांकि, अगर मैं रीसेट को स्पर्श करके पहले एनीमेशन रीसेट करता हूं, तो सब कुछ पूरी तरह से काम करता है। दूसरे शब्दों में, यदि मैं बार-बार फ्लिप दबाता हूं, तो मुझे केवल आधे संक्रमण मिलते हैं ... लेकिन अगर मैं पहले रीसेट दबाता हूं, तो सब कुछ एक फ्लिप के लिए पूरी तरह से काम करता है।
तो, मैं एनीमेशन को सही ढंग से रीसेट करने के लिए कैसे प्राप्त कर सकता हूं?
नीचे कोड, एक स्क्रीनशॉट है, और यहां पूर्ण लिंक है: Project Zip File 700k।
alt text http://www.robsteward.com/cardflip.jpg
- (void)displayWithImage1 { //RESET button calls this
self.frame = rect1;
[image2 removeFromSuperview];
[self addSubview:image1];
[self setNeedsDisplay]; //no help: doesn't force an update before animation
}
- (void)runTheAnimation { //FLIP button calls this
[self displayWithImage1]; //<---this is what the reset button calls
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:transition forView:self cache:NO];
self.frame = rect2;
[image1 removeFromSuperview];
[self addSubview:image2];
[UIView commitAnimations];
}
धन्यवाद!
मैं आधे बदसूरत कामकाज के साथ आया हूं। मैंने एक "डमी" एनीमेशन जोड़ा और अपनी कक्षा को अपने सेटएनीमेशन डीडस्टॉप चयनकर्ता के लिए एक प्रतिनिधि बनाया। डमी एनीमेशन की अवधि 0.0 है और केवल दृश्य को rect1 पर ले जाती है। जब डमी के स्टॉप चयनकर्ता को बुलाया जाता है, तो मैं ऊपर से "वास्तविक" एनिमेटेड फ्लिप कोड करता हूं। पूरी तरह कार्यात्मक, और ऐसा लगता है कि कम से कम 4 एक साथ चल रहे हैं। ये में। एलओएल – Rob
यह पता चला है कि वर्कअराउंड देरी के आधे सेकेंड तक का उत्पादन कर सकता है, इसलिए मैं एक बक्षीस शुरू कर रहा हूं। कंटेनर को दो छवियों को देखने का एक तरीका होना चाहिए और इसे एक संक्रमण में एक से दूसरे में फ़्लिप करना होगा। – Rob