在 Swift 中创建滑动转场
Creating a sliding segue in Swift
我正在尝试在两个视图控制器之间创建一个 segue/transition,"slides" 到下一个视图控制器。我所说的 "slide" 的意思是它只移动了平移手势(类似于 Snapchat)。如果你能帮我解决这个问题或者给我指出正确的方向,那就太好了。
该效果是使用 iOS7 中引入的自定义交互式过渡实现的。以下是一些可供查看的教程:
- 请参阅使用视图控制器自定义过渡。 https://developer.apple.com/videos/wwdc/2013/
- http://www.thinkandbuild.it/ios7-custom-transitions/
- http://objectivetoast.com/2014/04/14/interactive-transitions/
- http://www.teehanlax.com/blog/custom-uiviewcontroller-transitions/
- 这个例子给出了很多可以达到的效果的例子。 http://www.appcoda.com/custom-view-controller-transitions-tutorial/
当我实现这个时,我发现,为了可重用性,最好有一个 UIPercentDrivenInteractiveTransition
的子类(我们称之为 TransitionManager
)来实现协议 UIViewControllerTransitioningDelegate
、UINavigationControllerDelegate
和 UIViewControllerAnimatedTransitioning
。
- 然后,如果您需要使用自定义过渡以模态方式呈现 UIViewController
:在 prepareForSegue
中设置:
destinationViewController.modalPresentationStyle = .Custom
destinationViewController.transitioningDelegate = TransitionManager()
- 如果您使用的是 UINavigationController
则更简单,您只需设置 UINavigationController
的 delegate
到你的 TransitionManager
。
希望您在完成教程后开始理解这些内容。
我正在尝试在两个视图控制器之间创建一个 segue/transition,"slides" 到下一个视图控制器。我所说的 "slide" 的意思是它只移动了平移手势(类似于 Snapchat)。如果你能帮我解决这个问题或者给我指出正确的方向,那就太好了。
该效果是使用 iOS7 中引入的自定义交互式过渡实现的。以下是一些可供查看的教程:
- 请参阅使用视图控制器自定义过渡。 https://developer.apple.com/videos/wwdc/2013/
- http://www.thinkandbuild.it/ios7-custom-transitions/
- http://objectivetoast.com/2014/04/14/interactive-transitions/
- http://www.teehanlax.com/blog/custom-uiviewcontroller-transitions/
- 这个例子给出了很多可以达到的效果的例子。 http://www.appcoda.com/custom-view-controller-transitions-tutorial/
当我实现这个时,我发现,为了可重用性,最好有一个 UIPercentDrivenInteractiveTransition
的子类(我们称之为 TransitionManager
)来实现协议 UIViewControllerTransitioningDelegate
、UINavigationControllerDelegate
和 UIViewControllerAnimatedTransitioning
。
- 然后,如果您需要使用自定义过渡以模态方式呈现 UIViewController
:在 prepareForSegue
中设置:
destinationViewController.modalPresentationStyle = .Custom
destinationViewController.transitioningDelegate = TransitionManager()
- 如果您使用的是 UINavigationController
则更简单,您只需设置 UINavigationController
的 delegate
到你的 TransitionManager
。
希望您在完成教程后开始理解这些内容。