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を試しましたか?私はより良い解決策とより少ないハッキーだと思います、あなたの解決策はすべての細胞のアニメーションを遅らせるでしょう、あなたが問題を解決するかどうかを教えてください –