gpt4 book ai didi

ios - UIViewControllerAnimatedTransitioning 不会动画帧大小

转载 作者:行者123 更新时间:2023-11-28 12:16:42 24 4
gpt4 key购买 nike

我正在尝试使用 Pop-in 效果在 UIViewControllers 之间设置动画转换。

在我的 animateTransition(using transitionContext:) 函数中:

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)
})
}
}

我原以为框架的大小会从 100 x 100 变为 200 x 200。但它没有。

我发现此函数可以在过渡时为框架的位置设置动画,但不能为大小(宽度或高度)设置动画。如何为框架的大小设置动画?

最佳答案

这是因为您可能在应用中使用了自动布局。
布局引擎启动后,它会根据您的原始约束重新定位 View 。
尝试修改约束(或应用变换),而不是框架。使用自动布局修改框架几乎没有用。

关于ios - UIViewControllerAnimatedTransitioning 不会动画帧大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46292929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com