2010-07-02 21 views
13

क्या मेरी एनीमेशन पूरी होने के बाद मैं एक फ़ंक्शन को कॉल करने के लिए सेट कर सकता हूं? मैं UIView फीका चाहता हूं और फिर superView से इसे हटा देना चाहता हूं।UIView एनीमेशन पूर्णता कॉलबैक?

उत्तर

25

हां, यह आसान है:

आप अपने एनीमेशन कॉन्फ़िगर

[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(myAnimationStopped:finished:context:)]; 

और की तरह अपने विधि को परिभाषित जब:

-(void)myAnimationStopped:(NSString *)animationID 
       finished:(NSNumber *)finished 
        context:(void *)context { 
    // fancy code here 
} 

self और की है कि विधि, होना जरूरी नहीं है पाठ्यक्रम।

+0

धन्यवाद - मैं तरीकों में से सभी के माध्यम से देख रहा था, विश्वास नहीं कर सकता मैं याद किया है कि एक – Slee

+1

haha ​​oldschool ^^ अगले जवाब यह एक अब और नहीं किया जाता है – Macistador

+1

के लिए जाते हैं हाँ, यह से भी अधिक है अब 4 साल पुराना ... – Eiko

37

आईओएस 4 में एनिमेशन ब्लॉक पेश किए गए थे। ऐप्पल आपको इनका उपयोग करने की सिफारिश करता है, और नए तरीके ज्यादातर कॉलबैक को प्रतिस्थापित करने वाले पूर्णता ब्लॉक के लिए पूछते हैं। उदाहरण के लिए:

[UIView animateWithDuration:0.5f 
         delay:0.0f 
        options:UIViewAnimationCurveEaseInOut 
       animations:^{ 
        [myView setAlpha:0.0f]; 
       } 
       completion:^(BOOL finished) { 
        [myView removeFromSuperview]; 
       }]; 
संबंधित मुद्दे