2015-06-20 90 views
1

我已经在两个视图控制器之间实现了交互式转换,使用手势识别器和UIPercentDrivenInteractiveTransition。我正在做自定义滑动转换。与滚动视图类似的交互式转换

我想提高两件事情,以便有类似滚动型动画:

  1. 响应能力。当你平移超快和短时,下一个VC甚至没有显示,加上一个错误(animationEnded不叫,但这是另一回事) 有没有办法预先加载下一个视图控制器,让它作为一个孩子视图控制器可能是?看来我在viewDidLoad中做了太多工作。

  2. 在我的实现中,当手势识别器结束时,我打电话给finishInteractiveTransition。这工作正常,但如果你在这个转换完成之前开始一个新的平移手势,UI只是跳转而不是平滑滚动。所以可能是我应该在延迟后打电话finishInteractiveTransition,并在此期间手动拨打updateInteractiveTransition

可能我可以使用另一个API集具有交互式动画(但scrollview不是一个选项)?

仅供参考:这里是我的互动刷卡时视图层次,我的姿态连接到导航视图:

during interactive swipe

+0

听起来真棒想法 –

+0

是你的问题解决了 –

回答

2

尝试继承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(); 
} 
+0

会是什么self.layer考虑我视图层次结构(UIPercentDrivenInteractiveTransition没有它)?如果我将一些代码提取到github上的工作项目,可能会最好? –

+0

self.layer在摘录中分配。 – rounak

+0

嗨,@rounak你能解释一下self.layer的例子吗?有趣的吧! – saiday