gpt4 book ai didi

ios - 类似于 ScrollView 的交互式过渡

转载 作者:行者123 更新时间:2023-11-29 10:28:24 32 4
gpt4 key购买 nike

我已经使用手势识别器和 UIPercentDrivenInteractiveTransition 实现了两个 View Controller 之间的交互转换。我正在进行自定义滑动过渡。

我想改进 2 点以便与 ScrollView 动画类似:

  1. 响应能力。当你快速快速地平移时,下一个 vc 甚至都没有显示,加上一个错误(animationEnded 没有被调用,但这是另一个故事)有没有办法预加载下一个 View Controller ,将其作为 subview Controller ?看来我在 viewDidLoad 中做了太多工作。

  2. 在我的实现中,当手势识别器结束时,我调用了 finishInteractiveTransition。这工作正常,但如果您在此转换完成之前开始一个新的平移手势,则 UI 只会跳转而不是平滑滚动。那么我是否应该在延迟后调用 finishInteractiveTransition,同时手动调用 updateInteractiveTransition

也许我可以使用另一个 API 集来实现交互式动画(但 ScrollView 不是一个选项)?

仅供引用:这是交互式滑动期间我的 View 层次结构,我的手势附加到导航 View :

during interactive swipe

最佳答案

尝试子类化 UIPercentDrivenInteractiveTransition 并实现这些方法。这应该有助于消除抽搐:

- (void)startInteractiveTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
[super startInteractiveTransition:transitionContext];
self.layer = transitionContext.containerView.layer;
}

- (void)finishInteractiveTransition
{
[super finishInteractiveTransition];
self.layer.speed = 1;
self.layer.beginTime = [self.layer convertTime:CACurrentMediaTime() fromLayer:nil] - self.layer.timeOffset;
}

- (void)cancelInteractiveTransition
{
[super cancelInteractiveTransition];
self.layer.speed = -1;
self.layer.beginTime = CACurrentMediaTime();
}

关于ios - 类似于 ScrollView 的交互式过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30951684/

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