2012-08-09 11 views
10

मैं सोच रहा था कि क्या हटाए जाने की कोई संभावना है अगर हटाए गए एनीमेशन के दौरान एनीमेशन निकाल दिया गया है RowAtIndexPaths समाप्त हो गया? मैं जो करने की कोशिश कर रहा हूं वह यूआईटीबल व्यू से कुछ पंक्तियों को हटा रहा है, जिसे मैंने टैप किया था। इसके बाद मैं एक ही UITableView में कुछ पंक्तियां डालना चाहता हूं। दोनों ऑपरेशंस प्रारंभ अपडेटेट/एंडअपडेट ब्लॉक को अलग करने में किए जाते हैं। समस्या यह है कि एनीमेशन समाप्त होने से पहले, सम्मिलित एनीमेशन शुरू होता है और मैं चाहता हूं कि इसे एक के बाद एक निकाल दिया जाए क्योंकि बाहरी webservice से डाली गई पंक्तियां आ रही हैं।हटाए गए एनीमेशन अंत में कैसे हटाएं RowsAtIndexPaths

मैं तरीकों से डालने और हटाने के तरीके (यूआईटीबल व्यू सबक्लास में) को लपेटने के बारे में सोच रहा था, जहां मैं कस्टम एनीमेशन को कस्टम वाले के साथ बदल सकता था और पहले सिरे के बाद एक के बाद एक को आग लगाने के लिए उद्देश्य-सी ब्लॉक का उपयोग करता था लेकिन ऐसा लगता है कि यह असंभव प्रतीत होता है या मैं बस यह नहीं कर सकता।

आपकी मदद के लिए अग्रिम धन्यवाद!

उत्तर

14

मुझे विश्वास है कि animateWithDuration में अपनी मेज अद्यतन लपेटकर काम करेगा:

[UIView animateWithDuration:0.0 animations:^{ 
    [coursesTable beginUpdates]; 
    … 
    [coursesTable endUpdates]; 
} completion:^(BOOL finished) { 
    // Code to run when table updates are complete. 
}]; 

अन्य तरीकों कि मैं स्टैक ओवरफ़्लो पर यहाँ का सुझाव दिया पाया मेरे लिए काम नहीं किया।

मैंने एक बार में इस तकनीक का उपयोग किया और यह सत्यापित करने के लिए पर्याप्त परीक्षण किया कि तालिका के अंत अद्यतन विधि को कॉल करने के बाद पूर्णता ब्लॉक को बुलाया गया था और जिस समय इसे बुलाया गया था, उचित था, लेकिन मैंने अपना कोड दोबारा लिखा, इसलिए मैंने नहीं किया इससे पहले कि मैंने पूरी तरह से सत्यापित किया था कि एनीमेशन वास्तव में समाप्त हुआ था, इससे पहले इसकी आवश्यकता है।

+2

आदमी को पकड़ने के लिए आप शानदार हैं !! इस चाल के लिए धन्यवाद – Abolfoooud

0

उपयोग CATransaction किसी भी एनीमेशन के पूरा होने

CATransaction.begin() 
CATransaction.setCompletionBlock({ 
    // completion 
}) 
// do your animation here 
CATransaction.commit() 
संबंधित मुद्दे