iOS:UITableView重新排序控件未显示

时间:2013-01-29 05:55:43

标签: iphone ios uitableview

我正在设置所有必需的属性,以便在我的iOS应用中为UITableView实现重新排序控制,但是不会显示重新排序控件。这是代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return 4;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"DragAndDrop";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text=[[NSString alloc]initWithFormat:@"Row %d", indexPath.row];
    cell.showsReorderControl=YES;
    return cell;
}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}


-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView setEditing:YES animated:YES];
}


-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
         [tableView reloadData];
}

我已经实现了所有必需的方法。为什么不出现?

3 个答案:

答案 0 :(得分:3)

为此,您需要从头开始设置UITableView的“编辑”属性。

希望它对你有所帮助。

干杯!

答案 1 :(得分:0)

我忘了将故事板中的委托链接到tableview。一切都很好!!

答案 2 :(得分: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)];
}