自定义转场动画使我们所需要的,是为了更加体现APP的绚丽和增加用户对产品的好奇,甚至是那么点点的使用率。
不管是为了什么,今天写一下在present/dismiss/push/pop的时候转场动画。
首先建立一个NavigationController,两个按钮present和push
present按钮present出PresentViewController
Present
在PresentViewController中建立一个dismiss按钮dismiss
让NavigationController的rootViewController遵循UIViewControllerTransitioningDelegate
并且实现
你可以点击UIViewControllerTransitioningDelegate去看她的很多代理方法哎呀,出错了,必须返回一个东西。
接下来我们新建一个类CustomPresentAnimation继承NSObject并且遵循UIViewControllerAnimatedTransitioning
UIViewControllerAnimatedTransitioning有两个代理必须实现
这连个代理必须实现然后在这个方法里面写上你要的动画就可以了
代码展示我们找到NavigationController的rootViewController引入CustomPresentAnimation并初始化返回
运行代码是不是你想要的呢。。。你可以写更好看的动画哦,比如圆形扩散,scale等。。。
当人dismissed也是可以这样做哦
这是代理方法dismissedPush / Pop
我们NavigationController的rootViewController里面的Push按钮push出PushViewController
并且遵循UINavigationControllerDelegate别忘记设置代理哦
NavigationController代理方法return写好的UIViewControllerAnimatedTransitioning运行程序,是不是很酷。。。
好了大功告成了。当然你要是用的是SB的话在记得prepareForSegue这个方法哦。
是不是很简单。
网友评论