2010-01-22 6 views
5

जब कोई छवि छूती है तो मैं एक एनिमेटेड विस्तार शुरू कर रहा हूं, और फिर इसे रिलीज़ होने पर इसे सामान्य आकार में वापस स्केल कर रहा हूं। SetAnimationBeginsFromCurrentState का उपयोग करके: यदि आप एनिमेटिंग के माध्यम से अपनी अंगुली के हिस्से को उठाते हैं तो ज़ूमिंग प्रभाव अच्छा और चिकना होता है।आईफोन एसडीके - एक एनीमेशन समाप्त होने पर मैं कैसे कह सकता हूं?

हालांकि, अगर मैं एनीमेशन को पूरा करने के लिए पर्याप्त लंबे समय तक छवि को छुआ है, तो मैं बड़े आकार को "लॉक" कर सकता हूं, लेकिन यदि आप समय-समय पर रिलीज़ करते हैं तो इसे सामान्य रूप से वापस कम करने दें।

वहाँ एक रास्ता है कि क्या वर्तमान में एक एनीमेशन चल रहा है वहाँ, या एक विशेष एनीमेशन पूरा कर लिया है कि क्या यह बताने के लिए है?

मुझे लगता है कि मैं शायद इसे एक प्रदर्शन के साथ कर सकता हूं चयनकर्ता: बाद में: स्पर्श में कॉल करें, एनीमेशन की लंबाई के बराबर देरी के साथ और स्पर्श करने पर इसे रद्द करना समाप्त हो गया है, लेकिन मैं कल्पना नहीं कर सकता कि यह सबसे अच्छा तरीका है ...?

उत्तर

13
- (void)animateStuff { 
    [UIView beginAnimations:@"animationName" context:nil]; 
    [UIView setAnimationDelegate:self]; 
    [self.view doWhatever]; 
    [UIView commitAnimations]; 
} 

- (void)animationDidStop:(NSString *)animationID 
       finished:(NSNumber *)finished 
       context:(void *)context 
{ 
    if ([finished boolValue]) { 
     NSLog(@"Animation Done!"); 
    } 
} 
+1

यह मुझे कुछ समय लिया यह वास्तव में मैं चाहता था किया था महसूस करने के लिए। एनीमेशनडिडस्टॉप को यह कहा जाता है कि ज़ूमिंग कहां जा रही है, या अगर सिकुड़ने वाली एनीमेशन खत्म हो जाती है। हालांकि, समाप्त होने का मूल्य हमें बताता है कि क्या यह मूल रूप से निर्देशित किया गया था। क्या मैं आपके उदाहरण में एनीमेशनडिडटॉप के शरीर को बदलने का सुझाव दे सकता हूं: अगर ([समाप्त बूलवैल्यू]) { एनएसएलओजी (@ "एनीमेशन समाप्त हो गया!"); } यह तो एक आदर्श जवाब है :) –

0

मुझे लगता है कि "+ (शून्य) setAnimationDidStopSelector: (SEL) चयनकर्ता" आप क्या चाहते हैं क्या करना चाहिए। एनीमेशन पूरा होने के बाद यह आपके प्रतिनिधि को दिए गए चयनकर्ता को कॉल करेगा।

1

एक और संभावना:

[UIView animateWithDuration:0.3 animations:^{ 

     myView.transform = CGAffineTransformMakeRotation(M_PI); 

}completion:^(BOOL finished) { 

     NSLog(@"Animation complete!"); 
}]; 
संबंधित मुद्दे