1

iOS アニメーションで奇妙なアニメーションの問題が発生しました。UITableView セルの下から上への移動をアニメーション化しようとしています。ただし、アニメーションは最初のセルに対してのみ機能します。他のすべてのセルはその位置 (表の下部) にとどまります (ただし、報告されたフレームは変更されます)。

何か案は?これが私のコードです:

- (float)runCellAnimations {
    NSTimeInterval animationDelay = 0.0;
    NSArray *cells = [tableView visibleCells];

    for (GTMapLocationCell *cell in cells) {

        CGPoint origin = cell.origin;
        cell.origin = CGPointMake(cell.origin.x, CGRectGetHeight(tableView.bounds));

        [UIView beginAnimations:@"Cell Location" context:NULL];
        [UIView setAnimationDuration:GT_CELL_ANIMATION_DURATION];
        [UIView setAnimationDelay:animationDelay];
        cell.origin = origin;
        [UIView commitAnimations];
        animationDelay += GT_CELL_ANIMATION_INTERVAL;

    }

    return (animationDelay-GT_CELL_ANIMATION_INTERVAL)+GT_CELL_ANIMATION_DURATION;
}
4

1 に答える 1

0

[UIView beginAnimations:] とアニメーション セッター メソッドを for ループの前に呼び出し、[UIView commitAnimations] メソッドを for ループのスコープの後に呼び出してみてください。

私たちの提案は、各セルに変更を加えるだけで、アニメーションを 1 つだけ実行することです。

于 2012-09-16T16:02:30.577 に答える