看着大神的文章,对照实现了一下push/pop动画!记性不好,现在学习了以后肯定又忘记了,如果不用的话!所以记录一下原帖地址
比如从A push 到B,如果我们要自定义这个push动画的话,就要让A遵守UINavigationControllerDelegate协议,然后设置A为self.navigationController的delegate,之后在代理方法中将我们自定义的动画return。
自定义导航栏的动画大致步骤都一样,只不过动画的实现过程有区别,当然啦,这也是核心。简单的来说就是创建一个继承自NSObject的类,然后遵守UIViewControllerAnimatedTransitioning协议,实现两个必要的方法:func transitionDuration(transitionContext:UIViewControllerContextTransitioning?) ->NSTimeInterval 和 fun canimateTransition(transitionContext:UIViewControllerContextTransitioning)。一个返回动画的duration,另外一个就是动画的具体实现。
项目就是一个UICollectionViewController,点击cell会push到一个DetailViewController。