प्रदर्शित कर रहा हो, मेरे पास कुछ अजीब समस्या है, और मैं यह नहीं समझ सकता कि मुझे क्या याद आ रहा है। मेरे पास एक UITableView है जो जगह पर संपादन योग्य है (यानी जब मेरा यूआई लोड हो जाता है, तो मैं अपनी तालिका को सेट एडिटिंग भेजता हूं: हाँ एनिमेटेड: हाँ संदेश)। तालिका में अंतिम पंक्ति "नई जोड़ें" पंक्ति होने का इरादा है। मेरी तालिका में आखिरी पंक्ति को छोड़कर सभी पंक्तियों को चारों ओर ले जाया जा सकता है। पंक्तियों में से कोई भी हटाया नहीं जा सकता है।एक UITableView में पंक्तियों को स्थानांतरित करने में असमर्थ, भले ही हथियार
पंक्तियों सही तरीके से प्रदर्शन, और grabbers (के रूप में इरादा) अंतिम पंक्ति को छोड़कर सभी पंक्तियों के दाईं ओर दिखाई देता है। समस्या यह है कि मैं पंक्तियों को स्थानांतरित करने में असमर्थ हूं। जब मैं पंक्ति को स्थानांतरित करने के लिए हथियार पर टैप करता हूं, तो यह जगहों पर जिगल्स की तरह होता है, लेकिन मैं इसे ऊपर या नीचे खींच नहीं सकता। यहाँ कोड के प्रासंगिक टुकड़ा है:
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleNone;
}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == [self.itemArray count]) {
return NO;
}
return YES;
}
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == [self.itemArray count]) {
return NO;
}
return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
Item *item = [self.itemArray objectAtIndex:fromIndexPath.row];
[self.itemArray removeObjectAtIndex:fromIndexPath.row];
[self.itemArray insertObject:item atIndex:toIndexPath.row];
}
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath {
if ([proposedDestinationIndexPath row] < [self.itemArray count]) {
return proposedDestinationIndexPath;
}
NSIndexPath *betterIndexPath = [NSIndexPath indexPathForRow:[self.itemArray count]-1 inSection:0];
return betterIndexPath;
}
डिबग करने की कोशिश कर पर, ऐसा लगता है कि tableView: moveRowAtIndexPath: लगभग तुरंत रूप में भी मैं वह पंजे को पकड़ने में कर रहा हूँ (यानी मैं अभी तक अपने उंगली उठा लिया नहीं किया है कहा जाता हो जाता है)। इसके अलावा, मेरी तालिका दृश्य: targetIndexPathForMoveFromRowAtIndexPath: प्रस्तावित डिस्टिनेशन इंडेक्सपैथ: बिल्कुल भी शामिल नहीं होता है।
मैं क्या गलत कर रहा हूं पर कोई विचार? इस मुद्दे को ठीक करने के लिए मुझे क्या सुझाव देना चाहिए इस पर कोई सुझाव?
संभावित डुप्लिकेट [रीडायर्ड होने पर UITableViewCell को अपनी वर्तमान स्थिति से खींच नहीं सकता] (http://stackoverflow.com/questions/9251735/cant-drag-uitableviewcell-from-its-current-position-when-reorder) – Daniel