0

誰かがこの状況に遭遇しましたか?

セルを一番下から一番上に並べ替えると、クラッシュします。これらのクラッシュは、iSourceIndexPath.row が 0 になると発生します。iSourceIndexPath.row は、常に選択している最後の行であるため、どのようにして 0 になるのか疑問に思っています。どんな手掛かり?

- (NSIndexPath *)tableView:(UITableView *)iTableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)iSourceIndexPath toProposedIndexPath:(NSIndexPath *)iProposedDestinationIndexPath {
    NSIndexPath *aReturnIndexPath = iProposedDestinationIndexPath;
    if(iProposedDestinationIndexPath.row == 0) {
        aReturnIndexPath = iSourceIndexPath;
    }

    NSLog(@"iProposedDestinationIndexPath=%d iSourceIndexPath=%d aReturnIndexPath=%d",iProposedDestinationIndexPath.row,iSourceIndexPath.row,aReturnIndexPath.row);
    return aReturnIndexPath;
}
4

1 に答える 1

0

セルを移動した後、テーブルをリロードするのを忘れていました。その中のセルの通常の処理とは別に、これを行う必要があります。

- (void)tableView:(UITableView *)iTableView moveRowAtIndexPath:(NSIndexPath *)iFromIndexPath toIndexPath:(NSIndexPath *)iToIndexPath {
    [self.tableView reloadData]
}
于 2012-05-10T01:37:31.730 に答える