0

我有一个 UITableview 放在 JASidePanel 控制器中(https://github.com/gotosleep/JASidePanels)我在表格视图单元格上滑动,但视觉上没有任何反应。我查看了其他问题并实施了所有建议,但无法显示删除按钮。有谁知道什么会导致这种行为?

4

3 回答 3

8

您必须实现tableView:editingStyleForRowAtIndexPath:委托方法和tableView:commitEditingStyle:forRowAtIndexPath:数据源方法。没有这些,删除将不会出现在单元格中。

我假设您是YEStableView:canEditRowAtIndexPath:数据源方法返回的(至少对于适当的行)。

于 2013-03-18T02:50:20.223 回答
1

你试过这个类自己的删除单元格的方法吗?

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (UITableViewCellEditingStyleDelete) {
      int k = [[tempArray objectAtIndex:indexPath.row] intValue];

      //Remove object from index 'k'.
   }
}

它可能对你有帮助。

谢谢。

于 2013-03-18T04:03:09.920 回答
0

在滑动 TableViewCell 时执行 UITableView 的删除操作。我们必须实现以下三种方法:-

此方法将在滑动 TableViewCell 时显示删除按钮。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
       editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

  NSUInteger row = [indexPath row];
  NSUInteger count = [posts count];

  if (row < count) {
    return UITableViewCellEditingStyleDelete;
  } else {
    return UITableViewCellEditingStyleNone;
  }
}

当用户在 TableViewCell 滑动时删除一行时调用此方法,并且在点击删除按钮时将删除滑动的行。

- (void)tableView:(UITableView *)tableView 
        commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
        forRowAtIndexPath:(NSIndexPath *)indexPath {

  NSUInteger row = [indexPath row];
  NSUInteger count = [posts count];

  if (row < count) {
    [posts removeObjectAtIndex:row];
  }
}

最后,在删除行后调用此方法来更新表格视图。

- (void)tableView:(UITableView *)tableView 
                   didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {

  [self updateViewTitle];
  [tableView reloadData];
}
于 2018-01-30T07:24:02.703 回答