2009-03-09 29 views
7

के साथ सुपरव्यू से UIVIew निकालें मैं अपने ऐप में एक UIView के अतिरिक्त को एनिमेट कर सकता हूं, यह बहुत सुंदर दिखता है इसलिए आपको सेब धन्यवाद।एनीमेशन

हालांकि, मैं सुपर व्यू से इस दृश्य को हटाने का एनीमेट कैसे करूं?

मैं उपयोग कर रहा हूँ:

CATransition *animation = [CATransition animation]; 
[animation setDuration:1]; 
[animation setType:kCATransitionReveal]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[[myview layer] addAnimation:animation forKey:kCATransitionReveal]; 

चेतन के लिए संक्रमण "में" ... कैसे आप "बाहर" संक्रमण चेतन है ????

उत्तर

24

अपने विचार को एनिमेट करें ताकि यह ऑफस्क्रीन/shrinks/expands/fades को चलाए, फिर एनीमेशन समाप्त होने पर वास्तविक निष्कासन करें।

आप प्रारंभआनीकरण/प्रतिबद्धता ब्लॉक के बीच दृश्य (स्थिति/आकार/ऑफ़सेट) के गुणों को बदलकर ऐसा कर सकते हैं। UIKit तब निर्दिष्ट गुणों के साथ इन गुणों को एनिमेट करेगा।

E.g कुछ ऐसा;

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.30f]; 
view.transform = 
    CGAffineTransformMakeTranslation(
    view.frame.origin.x, 
    480.0f + (view.frame.size.height/2) // move the whole view offscreen 
); 
background.alpha = 0; // also fade to transparent 
[UIView commitAnimations]; 

एनीमेशन अंत अधिसूचना में आप दृश्य को हटा सकते हैं।

+0

धन्यवाद! मुझे लगता है कि यह मेरा सवाल है: मैं दृश्य को कैसे एनिमेट करता हूं यह दिखाता है कि यह ऑफस्क्रीन चलाता है? –

+2

आह, स्पष्टीकरण के लिए उत्तर अपडेट .. कोई भी डाउनवोट करने की आवश्यकता नहीं है! –

+0

अह्ह्ह ... धन्यवाद आदमी मैं वास्तव में इसकी सराहना करता हूं। अजीब ऑफस्क्रीन संक्रमण बेक नहीं किया गया है। सहायता की सराहना करते हैं! –