我需要帮助自定义segue从上到下的过渡。它很容易过渡,但我不知道该怎么做。它是在故事板中完成还是我必须在代码中完成?如果它必须以编程方式完成我的工作方式吗?
答案 0 :(得分:2)
您正在尝试为推送segue编写自定义过渡动画。所以这就是你要做的事情:
设置导航控制器的代理。
在委托中,实现func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationControllerOperation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning?
以返回实现UIViewControllerAnimatedTransitioning的对象(在现实生活中通常为self
)
在该对象中,实施func transitionDuration(using ctx: UIViewControllerContextTransitioning?) -> TimeInterval
和func animateTransition(using ctx: UIViewControllerContextTransitioning)
。
在animateTransition
中,从上下文(ctx
)获取信息。将to
视图放入containerView
并将其动画显示为finalFrame
。在您的情况下,您将从最终帧上方的视图开始,并按照您的指定向下设置动画。完成所有操作后(即在动画的完成处理程序中),请务必在上下文中调用completeTransition
。