我在UICollectionViewCells中放置了自定義的CABasicAnimation動畫。目的是每個單元格的動畫將在單元格出現在屏幕上時單獨觸發。我的方法是實現一個函數,在單元類上設置CABasicAnimation。我從控制器的willDisplayCell調用它。UICollectionViewCells中的CABasicAnimation結束屏幕外
此方法適用於所有重複使用的單元格。但是,最初爲控制器加載的所有單元格將立即(屏幕外)完成動畫,而不是根據動畫定時完成。什麼可能是這個問題?
// Cell
-(void)animate {
[CATransaction begin]; {
// My timed animations (CABasicAnimation)
} [CATransaction commit];
}
// Controller
- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
[((CustomCell*)cell) animate];
}
您是否嘗試過在您的ViewDidAppear中使用collectionView reloadData?我認爲是更好的解決方案,少hacky,也是你的解決方案會延遲所有單元格動畫,請讓我知道,如果解決您的問題 –