当“awakeFromNib”运行时,UICollectionViewCell内的动画不会运行。

时间:2015-03-09 09:02:09

标签: ios objective-c animation uicollectionview uiviewanimation

我正在开发一个带有Cell的UICollectionViewController,它包含内部" UIView"它们在显示时是动画的(只是一个简单的y轴移动)。

我的问题是,然后首先从nib文件加载单元格,动画不运行,但是单元格正在被重复使用",正在运行动画。

继续我做的事情:

- (void)loadCellWithAnimation{
    CGRect prevRect = self.viewThatAnimates.frame;
    prevRect.origin.y = prevRect.origin.y+10;
    [UIView animatewithDuration:0.5f animations:^{self.viewThatAnimates.frame = prevRect}];
}

和我的collectionViewController:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
        [cell loadCellWithAnimation];
    return cell;
}

正如我所说,动画在重复使用时工作正常,但是当它从笔尖唤醒时它不会运行。

我在几种不同的场景中对此进行了测试,结果始终相同。

感谢您的帮助;)

1 个答案:

答案 0 :(得分:0)

因为直到

return cell;

已从您的委托方法调用,awakeFromNib未被调用。

您可以在

中尝试动画
- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath

希望它有效。

干杯。