多个iOS动画仅适用于第一个视图

多个iOS动画仅适用于第一个视图,ios,uiviewanimation,Ios,Uiviewanimation,我对iOS动画有一个奇怪的问题。 我正在尝试设置从底部到顶部UITableView单元格的移动动画。 但动画仅适用于第一个单元。所有其他单元格仍保留在表格底部的位置,但报告的帧发生了变化 有什么想法吗?以下是我的代码: - (float)runCellAnimations { NSTimeInterval animationDelay = 0.0; NSArray *cells = [tableView visibleCells]; for (GTMapLocation

我对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;
}

尝试在for循环之前调用[UIView beginAnimations:]和动画setter方法,并在for循环的作用域之后调用[UIView commitAnimations]方法


我们的建议只是对每个单元格进行更改,但只执行一个动画。

我建议您使用基于块的动画。我尝试了[UIView animateWithDuration…]。这一个和前面一样。未调用完成块。这是不可能的,您做错了,请发布代码。