У меня есть собственный переход между viewcontrollers, который затухает текущим V C, и новым, в котором прекрасно работает, но на iOS 13 теперь, когда viewcontroller представлен модально с его новым переходом, где вы все еще можете видеть предыдущий V C на заднем плане, мой переход переопределяет его, я хотел бы, чтобы он оставлял зазор вверху и закругленные углы вместо того, чтобы становиться полноэкранным.
Пример работы по-старому ( я замедлил анимацию):
как это выглядит iOS 13:
это код, который я использую для перехода:
class FadeAnimationController: NSObject, UIViewControllerAnimatedTransitioning {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return 3
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let fromVC = transitionContext.viewController(forKey: .from),
let toVC = transitionContext.viewController(forKey: .to)
else {
return
}
let duration = self.transitionDuration(using: transitionContext)
transitionContext.containerView.backgroundColor = .white
transitionContext.containerView.addSubview(toVC.view)
transitionContext.containerView.addSubview(fromVC.view)
toVC.view.alpha = 0
UIView.animate(withDuration: duration, animations: {
toVC.view.alpha = 1
fromVC.view.alpha = 0
}, completion: { _ in
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
})
}
}
snapshot
и toVC
- те, которые становятся полным размером экрана вместо оставшихся такой же размер и форма fromVC
. Как я могу предотвратить это?