मैं ऊपर से नीचे तक एक दृश्य स्लाइड बनाने की कोशिश कर रहा हूं। यह एक बड़ा सौदा नहीं है, मैंने इसके लिए CABasicAnimation
का उपयोग किया। समस्या यह है कि जब मैं दृश्य को हटाना चाहता हूं। मैं इस एनीमेशन का उपयोग करता हूं।एनीमेशन के बाद, स्थिति स्थिति रीसेट
CABasicAnimation *animation;
animation = [CABasicAnimation animationWithKeyPath:@"position"];
[animation setDelegate:self];
animation.toValue = [NSValue valueWithCGPoint:CGPointMake(self.view.layer.position.x, 0 - self.view.bounds.size.height/2)];
animation.fromValue = [NSValue valueWithCGPoint:self.view.layer.position];
animation.autoreverses = NO;
animation.repeatCount = 0;
animation.duration = 0.25;
animation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
[self.view.layer addAnimation:animation forKey:@"moveX"];
जो दृश्य को पूरी तरह एनिमेट करता है। लेकिन, एनीमेशन खत्म होने के बाद, मेरा विचार फिर से दिखाई देता है। इसलिए मैंने यह लाइन जोड़ा:
[self.view removeFromSuperview];
जो दृश्य को हटा देता है, लेकिन बिना एनीमेशन के। इसलिए मैं निकालें कोड इस प्रतिनिधि को जोड़ने का निर्णय लिया:
-(void) animationDidStop:(CAAnimation *) animation finished:(bool) flag
तो अब, एनीमेशन काम करता है, दृश्य गायब हो जाता है, लेकिन कभी कभी, मैं दृश्य दिखाई देते हैं और तेजी से गायब हो जाते हैं देख सकते हैं, एनीमेशन के बाद की तरह है, दृश्य प्रकट होता है, तो animationDidStop
प्रतिनिधि को बुलाया जाता है, और दृश्य गायब हो जाता है, जाहिर है यह भयानक है। मैं क्या गलत कर रहा हूं?
मैंने ऐसा क्यों नहीं देखा? धन्यवाद, यह मेरी समस्या हल हो गया। मुझे लगता है कि यह एक त्रुटि है, मुझे ऐसा नहीं करना चाहिए, लेकिन कम से कम यह काम करता है। – carlos
मैं सहमत हूं, या हम कुछ खो रहे हैं, क्योंकि यह नमूना में काम करता है। अधिक प्रयोग करने की आवश्यकता है, मुझे लगता है! –