objective-c - UITableView deleteRowsAtIndex 和数据源问题

标签 objective-c ios uitableview nsmutablearray

祝大家 14 日 Baktun 快乐!

这件事已经困扰我一段时间了,我来回搜索,也检查了答案,但我似乎无法掌握答案并将其应用到我的应用程序中。如果你们中的一些人愿意提供帮助,我们将不胜感激!

我得到了以下函数,当步进器达到 0 时,它会从 UITableView 中删除单元格。 我希望单元格向左动画化,因此当您按 - 符号时,您会看到单元格滑出 View 。我将 sender.tag 设置为 CellForRowAtIndexPath 中的 [[cell stepper]setTag:indexPath.row];

  - (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] 解决了这个问题,但动画无法播放。有人可以告诉我应该如何正确处理数据和动画吗?

谢谢!

最佳答案

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

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

希望这对您有所帮助!

关于objective-c - UITableView deleteRowsAtIndex 和数据源问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13990564/

相关文章:

ios - 如何在非空NSMutableArray的开头添加NSArray的内容?

objective-c - .c 文件而不是 Objective-C 项目中的 .m?

ios - 可变长度标签、tableview 行高和自动布局

在 iOS 自定义键盘中使用时,iOS CoreBluetooth 状态不受支持

iphone - 如何在 iPhone 的表格 View 单元格中设置背景图像

ios - 如何让 UITableView 向上滚动以容纳键盘?

ios - 在安装 iOS 应用程序时提醒用户所需的 iOS 版本

objective-c - ios:屏幕截图不显示 mask 层

jquery - 无意中停止触摸端触发链接

design-patterns - UIVIew 或 UIViewController 中的复杂 View 设置? (设计决策)