यहाँ मेरी config है:UIView एनिमेशन बंद हो जब दृश्य गायब हो जाता है, फिर से शुरू नहीं करता है जब यह पुनः प्रकट
मैं एक ListViewController वाला स्टोरीबोर्ड है। ListViewController में एक सबव्यूव UIView है जिसे EmptyListView कहा जाता है। EmptyListView केवल तब दिखाया जाता है जब UITableView में कोई आइटम नहीं होता है, अन्यथा यह छिपा हुआ है।
EmptyListView में एक सबव्यूव UIImageView है जिसे खाली लिस्ट व्यूअरो कहा जाता है जो मेरे UITableView में एक नई प्रविष्टि बनाने के लिए बटन की ओर इशारा करता है। यह तीर नीचे & फैशन में असीमित एनिमेटेड है।
मैं अपने सबव्यूज़ को समाप्त करने के बाद एक अधिसूचना भेजने के लिए EmptyListView को सुनता हूं। मैं ऐसा इसलिए करता हूं क्योंकि यदि नहीं, तो एनिमेशन जो बाधाओं को बदलते हैं, गलत तरीके से व्यवहार करते हैं।
- (void) layoutSubviews {
[super layoutSubviews];
[[NSNotificationCenter defaultCenter] postNotificationName:@"EmptyViewDidLayoutSubviews" object:nil];
}
ListViewController इस अधिसूचना का अवलोकन करता है, यह एनीमेशन शुरू होता है:
[UIView animateWithDuration:0.8f delay:0.0f options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^{
self.emptyListViewArrowVerticalSpace.constant = 15.0f;
[emptyListView layoutIfNeeded];
} completion:nil];
अगर मैं पृष्ठभूमि में एप्लिकेशन डाल या ढेरों पर एक और ViewController धक्का, एक बार मैं एप्लिकेशन या करने के लिए वापस आने के लिए ListViewController, एनीमेशन बंद/रोका गया है। मैं इसे फिर से शुरू नहीं कर सकता।
मैं कोशिश की है:
- आवेदन इस्तीफा दे दूंगा लिए सुनकर/सक्रिय हो जाते हैं। इस्तीफा देने पर, मैंने [self.view.layer removeAllAnimations] किया और फिर ऊपर दिए गए कोड का उपयोग करके फिर से एनीमेशन शुरू करने का प्रयास किया।
- UIImageView को एनिमेटेड होने और इसे मूल दृश्य में वापस जोड़ने के बाद, और फिर एनीमेशन शुरू करने का प्रयास किया।
मुझे यहां बाधाओं का उपयोग करने पर पछतावा है, लेकिन समस्या के बारे में कोई अंतर्दृष्टि पसंद आएगी।
धन्यवाद!
क्या आप 'viewDidLoad' या' viewWillAppear' में अपनी विधियों का उपयोग कर रहे हैं? – iOS
viewDidAppear, लेकिन किसी विशेष कारण के लिए नहीं। – chrysb