【发布时间】:2016-11-03 13:30:27
【问题描述】:
所以我正在尝试在 tvOS 10 上的视图控制器之间进行动画转换。
UIViewControllerTransitioningDelegate 协议在 tvOS 上可用,所以我认为我也可以为它制作动画。但是由于某种原因,在展示新的视图控制器时,从来没有调用任何函数。
我不知道我做错了什么,因为我在 iOS 上做的基本上是一样的。
这是我正在使用的代码:
呈现代码
func showStuff() {
let viewController = ResultViewController()
viewController.transitioningDelegate = ResultViewControllerTransitionManager()
viewController.modalPresentationStyle = .custom
navigationController?.present(viewController, animated: true, completion: nil)
}
过渡代表
class ResultViewControllerTransitionManager: NSObject, UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate {
var duration = 0.5
var isPresenting = false
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return duration
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let fromView = transitionContext.view(forKey: UITransitionContextViewKey.from) else {return}
guard let toView = transitionContext.view(forKey: UITransitionContextViewKey.to) else {return}
(...)
}
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
isPresenting = false
return self
}
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
isPresenting = true
return self
}
}
【问题讨论】: