ポップイン効果を使用してUIViewControllers
の間のトランジションをアニメートしようとしています。私animateTransition(using transitionContext:)
機能でUIViewControllerAnimatedTransitioningはフレームサイズをアニメートしません
:
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
let containerView = transitionContext.containerView
if let toController = transitionContext.viewController(forKey: .to) {
let toView = toController.view!
let finalFrame = transitionContext.finalFrame(for: toController) // (20, 20, 200, 200)
containerView.addSubview(toView)
toView.frame = CGRect(x: 20, y: 20, width: 100, height: 100)
UIView.animate(withDuration: self.duration, delay: 0.0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0.0, options: .allowAnimatedContent, animations: {
toView.frame = finalFrame
}, completion: {(completed: Bool) -> Void in
transitionContext.completeTransition(completed)
})
}
}
私は、フレームのサイズは200 by 200
に100 by 100
から変更するだろうと期待していました。しかし、それはしませんでした。
Iはサイズ(幅または高さ)遷移ではなくながら、この関数は、フレームの位置をアニメーション化することができることを見出しました。フレームのサイズをどのようにアニメーション化できますか?
まだ試したことはありませんが、自動レイアウトがこの問題を引き起こしていることは間違いありません。 – sCha