项目中很多时候需要自定义弹窗,但是我们又不仅仅满足于死板的显示消失,何不加两句代码让你的弹窗漂亮登场呢?
结构:
底部推出的效果
- 由效果结合结构看出,控制的其实只是Collectionview ,只用到啦View的
动画
Block和相对移动
知识点 - transform 相对移动 参考点当前视图Fram(0,0)
//1.先正常创建collectionview
_collectionview=[[UICollectionView alloc]initWithFrame:CGRectMake(0,kScreenHeigth-100-SafeAreaBoHttomHeight, kScreenWidth, 100)
collectionViewLayout:layout];
//2.相对移动 往下移动高的距离(本例为100),还有一种方法,创建时y的坐标就再加上高,达到同样的效果
_collectionview.transform = CGAffineTransformMakeTranslation(0, 100);
//3.加个view的简单动画,设个觉得可以的动画时间
[UIView animateWithDuration:0.4 animations:^{
self.collectionview.transform = CGAffineTransformMakeTranslation(0, 0);
}];
消失收回的效果
- 原理和推出一样,在动画结束后消失视图
//先移动试图到底部,动画结束,移除视图
[UIView animateWithDuration:0.4 animations:^{
self.collectionview.transform = CGAffineTransformMakeTranslation(0, 100);
} completion:^(BOOL finished) {
[self removeFromSuperview];
}];