2010-05-17 12 views
16

मैं एक दृश्य में फीका करने के लिए चाहते हैं जबमैन्युअल रूप से एक नए जोड़े गए सबव्यू में फीका?

[self.view addSubview:someSecondaryViewController.view];

के माध्यम से ढेर में जोड़ा जा रहा है कि मैं इस कॉल कैसे चेतन है जिससे कि दृश्य में fades (और बाहर) करते हैं?

उत्तर

29

एनिमेट करने से पहले अल्फा को शून्य पर सेट करें, फिर अल्फा को एनिमेट करें।

[fadingView setAlpha:0.0]; 
[containerView addSubview:fadingView]; 
[UIView beginAnimations:nil context:nil]; 
[fadingView setAlpha:1.0]; 
[UIView commitAnimations]; 

दृश्य को हटाने से पहले, अल्फा को शून्य पर वापस एनिमेट करें।

बीटीडब्ल्यू, दृश्य पदानुक्रम एक ढेर की तुलना में एक पेड़ से अधिक है।

संपादित करें:

आप के बाद एनीमेशन समाप्त होता है जब दृश्य बाहर fading कोई अन्य सफाई है, तो का उपयोग करें:

[UIView setAnimationDelegate:fadingView]; 
[UIView setAnimationDidStopSelector:@selector(removeFromSuperview)]; 

आप पहले से ही एक didStopSelector सेट कर रहे हैं तो removeFromSuperview वहाँ कहते हैं।

+0

क्या होता है जब मेरा फीड 0.0 पर समाप्त होता है? ऐसा लगता है कि मेरा सबव्यूव हटा रहा है। मैं यह होना चाहता हूं, लेकिन मुझे स्मृति प्रबंधन के बारे में चिंता करनी चाहिए? यदि मैं सबव्यू को हटाने के लिए स्पष्ट रूप से कोड जोड़ता हूं, तो एनीमेशन दिखाई नहीं देता है। – Moshe

+1

पर्यवेक्षण से 'fadingView' को हटाने के लिए '+ setAnimationDidStopSelector' विधि का उपयोग करें। –

21

तुम भी ब्लॉक इस्तेमाल कर सकते हैं अपने सुपर दृश्य से एक दृश्य को दूर करने के बाद यह फीका बाहर समाप्त हो गया है एनीमेशन:

[UIView animateWithDuration:0.2 
       animations:^{viewOut.alpha = 0.0;} 
       completion:^(BOOL finished){[viewOut removeFromSuperview];}]; 
0

और स्विफ्ट में ...

In

someSecondaryViewController.view.alpha = 0.0 
self.view.addSubview(someSecondaryViewController.view) 
UIView.animateWithDuration(0.2, animations: { self.someSecondaryViewController.view.alpha = 1.0 }) 

Out

UIView.animateWithDuration(0.2, animations: { self.someSecondaryViewController.view.alpha = 0.0 }) { (done:Bool) in 
     self.someSecondaryViewController.view.removeFromSuperview() 
} 
संबंधित मुद्दे