0

祝大家第 14 届 Baktun 快乐!

这件事一直困扰着我一段时间,我在谷歌上来回搜索,还检查了 SO 的答案,但我似乎无法掌握答案并将其应用于我的应用程序。如果你们中的一些人愿意提供帮助,那将不胜感激!

我得到了以下函数,当步进器达到 0 时,它会从 UITableView 中删除一个单元格。我希望单元格向左移动,所以当你按下 - 符号时,你会看到单元格滑出视图。我将 设置sender.tag[[cell stepper]setTag:indexPath.row];in CellForRowAtIndexPath

  - (void)stepperChanged:(UIStepper *)sender
{

    WinkelWagen *ww = [WinkelWagen sharedWinkelWagen];
    BWBand *band = [ww.winkelWagenArray objectAtIndex: sender.tag];
    NSDecimalNumber *nummer = [[NSDecimalNumber alloc]initWithFloat:sender.value];
    band.winkelmandjeAantal = nummer;
    [sender setValue:[band.winkelmandjeAantal doubleValue]];

    // Remove the cell and object from WinkelWagen if stepper.value turns 0
    if (sender.value == 0)
    {
        NSArray *deleteIndexPaths = [NSArray arrayWithObjects:
                                     [NSIndexPath indexPathForRow:sender.tag inSection:0],
                                     nil];
        [ww.winkelWagenArray removeObject:band];
        [self.tableView beginUpdates];
        [self.tableView reloadData];
        [self.tableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation:UITableViewRowAnimationNone];

        if ([winkelmandjeData count] == 0)
        {
            NSArray *addIndexPaths = [NSArray arrayWithObjects:
                                      [NSIndexPath indexPathForRow:0 inSection:0],
                                      nil];
            [self.tableView insertRowsAtIndexPaths:addIndexPaths withRowAnimation:UITableViewRowAnimationFade];
        }
        [self.tableView endUpdates];
    }
}

更新:我已经解决了,[[self.tableview]reloaddata]但是动画没有播放。有人能告诉我应该如何正确处理数据和动画吗?

谢谢!

4

1 回答 1

1

我看到你可能有问题,但不知道它是否是你问题的答案。在您if ([shoppingCartData count] == 0)的表格中添加一行,但数据源保持不变。这可能会导致崩溃。

此外,在 之前if,您的数据源似乎是ww.shoppingCartArray,但在if您正在检查 的计数shoppingCartData

希望这可以帮助!

于 2012-12-21T13:00:32.493 回答