视图控制器之间的自定义过渡支持不同/不匹配的方向

时间:2018-05-14 07:22:20

标签: ios uiviewcontroller transitions

具体来说,我在解除视图控制器B时遇到问题,因此视图控制器A再次可见。按照以下步骤操作,视图控制器A的外观将严重失真。

  • 查看控制器A支持 所有方向,但上下颠倒
  • 视图控制器B仅支持 仅限肖像

如何导致问题/错误。

  1. 纵向握住VC A.
  2. 打开VC B.
  3. 将设备保持在风景中。
  4. 解雇VC B.
  5. VC A的外观现在严重破坏/扭曲/错误。

    我怀疑如果VC支持另一组方向会出现同样的问题,但是现在这是问题发生的确切而简单的情况。

    转换由实现UIViewControllerAnimatedTransitioning的类处理。它基本上就是这样。

    class FadeAnimator: NSObject {
        let duration: TimeInterval = 1.0
        var originFrame = CGRect.zero
    }
    
    extension FadeAnimator: UIViewControllerAnimatedTransitioning {
        func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
            return self.duration
        }
    
        func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
    
            let containerView = transitionContext.containerView
    
            let toView = transitionContext.view(forKey: .to)!
    
            containerView.addSubview(toView)
            toView.alpha = 0
    
            UIView.animate(withDuration: self.duration, animations: {
                toView.alpha = 1
            }, completion: { _ in
                transitionContext.completeTransition(true)
            })
        }
    }
    

    显示问题的完整示例项目位于:https://bitbucket.org/zzzzapjonny/testtransition/src/master/testtransition/

0 个答案:

没有答案