【发布时间】:2017-08-02 06:29:08
【问题描述】:
我在 UICollectionViewCells 中放置了自定义 CABasicAnimation 动画。目的是一旦单元格出现在屏幕上,每个单元格的动画将单独触发。我的方法是实现一个在单元类上设置 CABasicAnimation 的函数。我从控制器的 willDisplayCell 调用它。
这种方法适用于所有重复使用的单元格。但是,最初为控制器加载的所有单元格将立即完成动画(屏幕外),而不是根据动画时间。可能是什么问题?
// 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,您的解决方案也会延迟所有单元格动画,如果解决了您的问题,请告诉我
标签: ios objective-c uicollectionview core-animation