2010-02-22 8 views
17

में एनीमेशन के साथ प्रोग्राममैटलाली चलती पंक्तियां this Grocery Shopping List app जैसे शांत एनीमेशन प्रभाव के साथ मैं अपनी UITableView के नीचे एक पंक्ति को स्थानांतरित करना चाहता हूं।UITableView

बस हम जैसे नियंत्रण को पुन: क्रम के साथ पंक्तियों स्थानांतरित कर सकते हैं जैसे:

reordering uitableview rows programmatically

मैं कैसे इस तरह के एनीमेशन बना सकते हैं?

उत्तर

7

महत्वपूर्ण: यह उत्तर आईफोन ओएस 3.x मानता है। आईओएस के लिए See the answer above 5.x

मुझे नहीं पता कि "किराने की खरीदारी सूची ऐप में बस जैसे शांत एनीमेशन प्रभाव" क्या है। हर कोई उस ऐप में नहीं है।


पंक्तियों को प्रोग्रामेटिक रूप से स्थानांतरित नहीं किया जा सकता है।

हालांकि, आप एक साथ अनुकरण करने के लिए एक पंक्ति को सम्मिलित और हटा सकते हैं।

[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:rowToMove] 
       withRowAnimation:UITableViewRowAnimationLeft]; 
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPathToMoveTo] 
       withRowAnimation:UITableViewRowAnimationLeft]; 
// update your dataSource as well. 
[tableView endUpdates]; 
+0

केनी, प्रभाव के बारे में मैं बात कर रहा था एक गिरते पंक्ति एनीमेशन है, बस जब एक टेबल पुनर्व्यवस्थित मोड में होती है तो इसे उंगली से खींचने की तरह। मैं सोच रहा हूं कि यह कैसे किया गया था। मैं सेल सामग्री को अर्ध पारदर्शी uiimage में खींचने के बारे में सोचता हूं और फिर छवि को वांछित स्थान पर एनीमेशन के साथ ले जाता हूं, लेकिन मुझे यकीन नहीं है कि यह सबसे अच्छा समाधान है – Alex

+0

आपको कोई समाधान मिल रहा है? मेरे पास एक समान प्रश्न है: http://stackoverflow.com/questions/5112588/how-make-the-same-animation-like-uitableview-reorder-of-cells & http://stackoverflow.com/questions/5315990/ कैसे-प्रति-कोशिकाओं के बीच-टेबल-ए-द-पल्स-ऐप – mamcx

+0

हो सकता है कि आपको केवल RowAnimation प्रभाव की आवश्यकता हो: UITableViewRowAnimationBottom – ugiflezet

2

यह एक स्क्रॉलव्यू से दूसरे स्क्रॉलव्यू से ड्रैग और ड्रॉप करने की अनुमति देने के लिए मैंने किया है।

आप डुप्लिकेट/डमी सेल (दृश्य प्रभाव के लिए) बनाना चाहते हैं, फिर मूल सेल को हटाएं, फिर डुप्लिकेट को एनिमेट करें, फिर नीचे डालें और फिर अंततः डुप्लिकेट/डमी सेल को हटा दें।

26

iOS 5 में इस निम्नलिखित UITableView चयनकर्ता के साथ किया जा सकता है:

- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath 

उदाहरण के लिए:

[self.tableView moveRowAtIndexPath:indexPath toIndexPath:[NSIndexPath indexPathForRow:[items count] - 1 inSection:1]]; 
+1

बढ़िया! चयनकर्ता दस्तावेज़ से लिंक: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW55 – yonel

+0

स्पष्ट फॉलोअप सवाल यह है कि सरणी को सॉर्ट करने के बाद इन इंडेक्सपैथ को कैसे निकाला जाए ...? शायद मुझे सरणी की एक क्रमबद्ध प्रतिलिपि बनाना चाहिए और प्रत्येक तत्व की अनुक्रमणिका के पहले और बाद में पता लगाना चाहिए? – devios1