2013-03-05 5 views
6

अभी मुझे लगता है कि एक UITableView कि UITableView Cells कि छोड़ दिया और दाएं स्लाइड शामिल शामिल एक iPad ऐप्लिकेशन बनाने रहा हूँ के साथ एक UITableView में 2 UITableviewCells के बीच UITableViewCells जोड़े, मैं दे UITableViewController पता है जब एक स्लाइड होता है की एक NSNotification आधारित प्रणाली है । मुझे उस सेल के नीचे UITableViewCell प्रदर्शित करने की आवश्यकता है जो स्थानांतरित हो गया था और उस सेल से ऊपर था जो स्थानांतरित सेल के नीचे था। मैं ऐप में स्पष्ट रूप से एक गुना एनीमेशन करना चाहता हूं लेकिन बिना pinch gesture (यानी स्वचालित फोल्ड) के बिना। मुझे इस पुस्तकालय को MPFoldTransition कहा गया है। हालांकि, यह UITableView का समर्थन नहीं करता है। मैंने pinch gesture में इस tutorial में भी देखा है, हालांकि यह ट्यूटोरियल मुझे एनीमेशन को स्वचालित रूप से एनिमेट करने का तरीका नहीं बताता है, क्योंकि उपयोगकर्ताओं को चुटकी इशारा करने की आवश्यकता होती है। मैंने वेब के चारों ओर देखा है और कुछ भी नहीं ढूंढ रहा है। मैं किसी भी मदद की सराहना करता हूं।एक एनीमेशन

धन्यवाद

+1

_ "हालांकि यह ट्यूटोरियल UITableViewCell सबक्लास का उपयोग करता है और मेरे पास यह नहीं है" _ इसके लिए कोई विशेष कारण है? – iDev

+0

कारण यह है कि मुझे तुरंत UIView को नष्ट करने की आवश्यकता है (यानी इसे फिर से जीवंत करें) – virindh

+0

@ACB मुझे लगता है कि मैं सैद्धांतिक रूप से एक बहुत ही अनुकूलित यूआईटीबल व्यूसेल का उपयोग कर सकता हूं, इस निरीक्षण के लिए मुझे खेद है, मैंने इस परिवर्तन को दर्शाने के लिए अपना प्रश्न संपादित किया है – virindh

उत्तर

7

इस का उपयोग करते हुए MPFoldTransition के transitionFromView: toView:... पूरी तरह से संभव है। मैं एक नमूना परियोजना है कि मैं यदि आप चाहें तो लिंक कर सकते हैं बना लिया है, लेकिन यह सब वास्तव में इस करने पर निर्भर करता:

- (void)addNewTableCellToIndexPath:(NSIndexPath *)indexPath { 
    // Add the new object to the datasource and reload the row 
    [dataSourceArray insertObject:@"New" atIndex:indexPath.row]; 

    [self.tableView beginUpdates]; 
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView endUpdates]; 

    //setup temporary cell 
    UITableViewCell *fromCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 
    [fromCell setBackgroundColor:[[self.tableView cellForRowAtIndexPath:indexPath] backgroundColor]]; 
    //setup cell to animate to 
    UITableViewCell *toCell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    [toCell.textLabel setText:dataSourceArray[indexPath.row]]; 

    //add fold animation to the cells create above 
    [MPFoldTransition transitionFromView:fromCell 
            toView:toCell 
           duration:0.4 
            style:MPFoldStyleUnfold 
         transitionAction:MPTransitionActionNone 
           completion:^(BOOL finished) { 
            [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
           }]; 
} 

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

किसी भी तरह से, यह आपको जाने के लिए पर्याप्त होना चाहिए। उम्मीद है की यह मदद करेगा!