【iOS学习笔记 15-11-06】简单自定义navigationcontroller push和pop动画效果
来源:互联网 发布:603881数据港股吧 编辑:程序博客网 时间:2024/04/29 11:21
最近在做项目的时候发现presentViewController 的时候和MBProgressHUD冲突了,当时不想修改MBProgressHUD的代码,所以就另外想了一个方法,利用pushViewController来解决这个问题,但是push的动画是从左至右的,和present从下至上的动画有区别的。
于是想到重写push的动画,思路如下:
首先创建一个UINavigationController+CustomAnimation的category(这里不了解category的同学可以看看)
直接上代码
//UINavigationController+CustomAnimation的category.h#import <UIKit/UIKit.h>@interface UINavigationController (CustomAnimation)- (void)pushViewController: (UIViewController*)controller;- (UIViewController*)popViewControllerAnimatedWithTransition;@end//UINavigationController+CustomAnimation的category.m#import "UINavigationController+CustomAnimation.h"@implementation UINavigationController (CustomAnimation)- (void)pushViewController: (UIViewController*)controller{ CATransition *transition = [CATransitionanimation]; transition.duration =0.3; transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type =kCATransitionMoveIn; transition.subtype =kCATransitionFromTop; self.navigationBarHidden =NO; [selfpushViewController:controlleranimated:NO]; [self.view.layeraddAnimation:transitionforKey:nil];}- (UIViewController*)popViewControllerAnimatedWithTransition { CATransition *transition = [CATransitionanimation]; transition.duration =0.3; transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition.type =kCATransitionReveal; transition.subtype =kCATransitionFromBottom; self.navigationBarHidden =NO; [self.view.layeraddAnimation:transitionforKey:nil]; UIViewController* poppedController = [selfpopViewControllerAnimated:NO]; return poppedController;}@end
利用CATransition来实现push和pop动画
transition.type = kCATransitionMoveIn;//枚举量,表示动画类型,有3D旋转,淡入淡出,翻页和移动入场等
transition.subtype = kCATransitionFromTop;//枚举量,动画进入的方向和出去的方向,从上、下、左、右四个方向
然后在自己的项目里面import category,直接调用上面的方法就OK了,表面上是模态视图的动画效果,实际上是controller入栈操作
PS:后面要研究下引入MBProgressHUD,导致presentViewController崩溃的原因,有知道的童鞋希望不吝赐教
0 0
- 【iOS学习笔记 15-11-06】简单自定义navigationcontroller push和pop动画效果
- NavigationController 自定义pop和push动画
- 自定义NavigationController 的Push 和 Pop过渡动画
- iOS:更改navigationController push和pop界面切换动画
- navigationController push和pop界面切换动画
- 定义NavigationController pop 和push的动画
- IOS 自定义push和pop动画
- iOS pushViewController 实现push 和pop 默认动画效果
- iOS 自定义动画 push/pop动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- 更改navigationController push和pop界面切换动画
- UINavigationController自定义,push和pop动画
- Martini源码解析-实例1
- 数字电路中如何实现脉冲的边沿检测
- 关于C++指针很好的介绍
- 一个iOS图片选择器的DEMO
- Mysql在select子句中聚集函数和普通属性一起写出现的一个有趣的问题!
- 【iOS学习笔记 15-11-06】简单自定义navigationcontroller push和pop动画效果
- oracle删除 重复记录
- C++学习:模板类学习
- 第十周项目三用二叉树遍历思想解决问题
- 一起用C++写个轻量的搜索引擎(一)
- QThread线程学习笔记
- 逆袭高富帅 屌丝成长必备APP大搜罗
- [Web API] 如何让 Web API 统一回传格式以及例外处理
- 定时器中调用存储过程