我正在开发一个带有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;
}
正如我所说,动画在重复使用时工作正常,但是当它从笔尖唤醒时它不会运行。
我在几种不同的场景中对此进行了测试,结果始终相同。
感谢您的帮助;)
答案 0 :(得分:0)
因为直到
return cell;
已从您的委托方法调用,awakeFromNib
未被调用。
您可以在
中尝试动画- (void)collectionView:(UICollectionView *)collectionView didEndDisplayingCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath
希望它有效。
干杯。