实现思路
动画缩放连续性强,所以点击图片后,在该控制器中添加对应的大图 view。
视图层级
View
UICollectionView
cell
UIImageView
实现难点
放大过程:
-
在大图上添加一个用于完成动画的 imageView,其中该 imageView 的初始位置要等于点击的小图的位置,所以这里需要将小图的 frame 转换到大图上
CGRect rect = [collectionView convertRect:cell.frame toView:_imgV];
-
获取到 frame 后,完成动画
[UIView animateWithDuration:1 animations:^{ tempV.bounds = _imgV.frame; tempV.center = _imgV.center; } completion:^(BOOL finished) { [tempV removeFromSuperview]; _imgV.image = [UIImage imageNamed:[NSString stringWithFormat:@"%ld",indexPath.row + 1]]; }];
缩小过程:
该过程与放大过程类似
以上观点为本人学习记录,仅供参考,最后放上工程链接
网友评论