gpt4 book ai didi

ios - 交互转场+结束动画怎么做?

转载 作者:行者123 更新时间:2023-11-28 07:50:57 24 4
gpt4 key购买 nike

通常,我们可以使用 UIViewControllerAnimatedTransitioninganimateTransition 进行交互式过渡,并通过 UIPercentDrivenInteractiveTransition 更新进度。

问题:如何让交互过渡开始,然后当我们通过某个阈值时,执行不同的结束动画?

我在这里想要实现的是关闭 App store 的今日卡片 (https://gph.is/2qgcGHd)。我们可以通过平移屏幕的左边缘以交互方式缩小卡片。然后,当它到达该点时,卡片会以动画方式返回主页,没有任何交互性。对我来说,这似乎是交互式 + 动画过渡的结合。


我尝试过的: 我尝试在 UIView.animateWithKeyFrames 中将动画分成两部分,每部分的相对时间为 0.5。然后当进度达到 0.5 时,我调用 finish()(属于 UIPercentDrivenInteractiveTransition)来执行第二个动画。它那里有一些小故障,就像一个黑客。想知道是否有更好的方法来做到这一点。

最佳答案

最后,我使用 UIView.animateKeyFrames 并将交互式过渡分为两部分动画(如问题中所述):

let progressUntilDismissing = 0.4
UIView.animateKeyframes(withDuration: 0.5, delay: 0, options: [], animations: {

UIView.addKeyframe(withRelativeStartTime: 0.0,
relativeDuration: progressUntilDismissing,
animations: {
// interactive dismissing animation...
})

UIView.addKeyframe(withRelativeStartTime: progressUntilDismissing,
relativeDuration: (1 - progressUntilDismissing),
animations: {
// closing dismissing animation...
})
}) { (finished) in
//...
}

然后在平移手势识别器中,我计算平移进度并确定它是否通过 progressUntilDismissing

如果是,在 UIPercentDrivenInteractiveTransition 子类上调用 finish(),它会自动制作结束关闭动画。

如果有人好奇,这就是我正在玩的东西: AppStoreTodayInteractiveTransition

关于ios - 交互转场+结束动画怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49695405/

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