0

みんなハッピー14バクトゥン!

このことはしばらくの間私を悩ませていました。私はあちこちグーグルで検索し、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]が、アニメーションが再生されません。データとアニメーションを適切に処理する方法を教えてもらえますか?

ありがとう!

4

1 に答える 1

1

あなたが問題を抱えている可能性があることがわかりましたが、それがあなたの質問に対する答えであるかどうかはわかりません. テーブルに行を追加していますif ([shoppingCartData count] == 0)が、データ ソースは同じままです。その結果、クラッシュする可能性があります。

また、 の前ではif、データ ソースは のように見えますがww.shoppingCartArray、 ではifの数をチェックしていますshoppingCartData

お役に立てれば!

于 2012-12-21T13:00:32.493 に答える