// Cell即将显示的时候调用
- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath {
if (self.flowLayout.columnNumber == 2) {
// 将所有已经显示过的cell放在showedIndexPaths数组中,只有第一次显示的时候才需要做动画
if ([self.showedIndexPaths containsObject:indexPath]) {
return;
} else {
[self.showedIndexPaths addObject:indexPath];
// 给cell做缩放动画
[self cellAnimateScale:cell];
}
}
}
// 缩放动画
- (void)cellAnimateScale:(UICollectionViewCell *)cell {
CGFloat duration = 0.5;
cell.transform = CGAffineTransformMakeScale(0.3, 0.3);
[UIView animateWithDuration:duration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
cell.transform = CGAffineTransformMakeScale(1.0, 1.0);
} completion:^(BOOL finished) {
}];
}
// 移动动画-- 暂时不用-- 备用
- (void)cellAnimateMove:(UICollectionViewCell *)cell indexPath:(NSIndexPath *)indexPath {
NSLog(@"%@",NSStringFromCGRect(cell.frame));
CGRect toFrame = cell.frame;
// Y ScrollView滑动到底部的时的Y
cell.frame = CGRectMake(cell.frame.origin.x, self.collectionView.contentSize.height + self.collectionView.contentOffset.y + self.collectionView.contentInset.top, cell.bounds.size.width, cell.bounds.size.height);
cell.layer.cornerRadius = cell.bounds.size.width * 0.5;
CGFloat duration = (indexPath.item) * 0.2 + 0.2;
[UIView animateWithDuration:duration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
cell.frame = toFrame;
} completion:^(BOOL finished) {
}];
}
collectionViewCell即将显示的时候动画
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- - (void)viewWillAppear: (BOOL)animated { [super viewWillA...
- 绘本体验的重要性 柳田先生说他与书的亲近有两次决定性的体验,一次是小学一年级时,因为急性肾盂炎在家卧床休息一个学期...
- 罗曼罗兰说过:世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活。 人生如逆旅,我亦是行人,有些道理年轻的时...