我使用Gmail并且喜欢在电子邮件项目的详细视图中通过左右滑动来查看下一个 - 以前的邮件的方式。我正在写一些应用程序,并希望制作这样的应用程序。 Gmail使用的两个详细视图之间的转换是什么?什么是动画?
当我滑动时,当前视图将向外滚动,下一个视图也会像两个视图一样滚动,与其他视图一致。
但是,实际上,两个视图由同一个DetailViewController
初始化。
我读了一些教程,但找不到解决方案。我认为那是UISplitViewController
??
答案 0 :(得分:1)
我认为你正在寻找一种叫做自定义视图控制器转换的东西。
长话拍摄,你需要:
1)创建一个符合UIViewControllerAnimatedTransitioning
协议的类。在那里你会写你的动画代码。动画完成后,别忘了给transitionContext. completeTransition (true)
打电话。
要触发自定义转换,您的UINavigationController
必须实现UINavigationControllerDelegate
方法协议:func navigationController(_ navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation, fromViewController fromVC: UIViewController,toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
并返回您在1)中创建的对象(符合UIViewControllerAnimatedTransitioning的对象)。
返回nil
会触发默认动画push
,pop
,依此类推。
查看this WWDC会话,解释如何使用它 我强烈建议您阅读this issue。