2012-09-16 67 views
1

我對iOS動畫有一個奇怪的動畫問題。 我想動畫從底部到頂部的UITableView單元格移動。 但動畫只適用於第一個單元格。所有其他的細胞仍然在他們的位置(在桌子底部)(儘管如此,報道的幀改變了)。多個iOS動畫僅適用於第一個視圖

任何想法?這裏是我的一段代碼:

- (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; 
} 
+1

我建議你改爲基於塊的動畫。 – holex

+0

我試過[UIView animateWithDuration ...]。這一個行爲如前所述。完成塊從未被調用過。 –

+0

這是不可能的,你做錯了,請發佈你的代碼。 – holex

回答

0

嘗試調用[UIView的beginAnimations:]和動畫setter方法之前的循環,for循環範圍之後調用[UIView的commitAnimations]方法。

我們的建議是簡單地對每個單元格進行更改,但只執行一個動畫。

相關問題