快乐的第14届Baktun大家!
这件事已经困扰了我一段时间,我来回搜索,并检查了SO的答案,但我似乎无法掌握答案并将其应用到我的应用程序。如果你们中的一些人愿意帮忙,那将不胜感激!
我得到了以下函数,当步进器达到0时,它会从UITableView中删除一个单元格。
我想要将单元格设置为左侧动画,因此当您按下 - 符号时,您将看到单元格滑出视图。我将sender.tag
设置为[[cell stepper]setTag:indexPath.row];
中的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]
解决了这个问题但是动画没有播放。有人能告诉我如何正确处理数据和动画吗?
谢谢!
答案 0 :(得分:1)
我看到你可能遇到问题,但不知道这是否是你问题的答案。在if ([shoppingCartData count] == 0)
中,您要向表中添加一行,但数据源保持不变。这可能会导致崩溃。
此外,在if
之前,您的数据来源似乎是ww.shoppingCartArray
,但在if
中,您正在检查shoppingCartData
的数量。
希望这有帮助!