我正在尝试使用UITableViewCell的2个类UITableView(第0部分有一行,第1部分有[self.dataArray count]行)。
reordering control in UITableView
Reorder control isn't displayed on table view
我添加了:
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
// Get the object we are going to move
Task *task = [[Task alloc] init];
task = [self.taskArray objectAtIndex:[destinationIndexPath row]];
// We will delete and move it to another location so well have to retain it
//[task retain];
// Remove it an move it to other place
[self.taskArray removeObjectAtIndex:[sourceIndexPath row]];
[self.taskArray insertObject:task atIndex:[destinationIndexPath row]];
}
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 1) {
return YES;
}
return YES;
}
我确实为每个UITableViewCell类添加了:
cell.showsReorderControl = YES;
但仍然没有运气,没有reaorderControl显示......任何人?有这么多教程,这对我来说非常紧急和烦人。
我改变了一个主题以包含事实,我使用UIViewController而不是UITableViewController。
答案 0 :(得分:14)
要在UITableView
中实施行重新排序,您需要实施tableView:canMoveRowAtIndexPath:
和tableView:moveRowAtIndexPath:toIndexPath:
,您可能还需要实施tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:
。
最重要的是,表格视图必须处于编辑模式才能显示重新排序控件。
答案 1 :(得分:0)
试试这个。 。 。这将处理在编辑模式下简单的tableview情况下单元格的排列和更新
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
[tableData insertObject: [tableData objectAtIndex:sourceIndexPath.row] atIndex:destinationIndexPath.row];
[tableData removeObjectAtIndex:(sourceIndexPath.row + 1)];
}