UICollectionViewCells内的CABasicAnimation在屏幕外完成

时间:2017-08-02 06:29:08

标签: ios objective-c uicollectionview core-animation

我在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]; 
}

2 个答案:

答案 0 :(得分:0)

在你的Cell课上试试这个:

- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
    [self animate];
}

答案 1 :(得分:0)

我能够通过应用以下更改来解决此问题。感觉像黑客,但至少它的作用。

RetailPrice