如何在两个子控制器之间创建“滚动滑动”转换

时间:2014-11-08 21:03:44

标签: ios transitions uicontainerview

我正在尝试在两个加载到容器视图中的子控制器之间滑动。我发现了CATransition中的滑动效果。但是,它并没有像我想要的那样滑动。如果我从右向左滑动,我希望当前控制器也向左滑动。因此,它基本上使用滑动创建滚动效果。我怎样才能做到这一点?这是我目前的代码。

    var transition = CATransition();
    transition.duration = 0.25;
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut);
    transition.type = kCATransitionPush
    if source.prevItem > source.pageControl.currentPage {
        transition.subtype = kCATransitionFromLeft
    } else {
        transition.subtype = kCATransitionFromRight
    }
    dest.view.layer.addAnimation(transition, forKey: kCATransition)

    source.transitionFromViewController(
        source.currentChildController!,
        toViewController: dest,
        duration: 0.5,
        options: UIViewAnimationOptions.CurveEaseInOut,
        animations: nil,
        completion: { finished in
            source.currentChildController?.removeFromParentViewController()
            dest.didMoveToParentViewController(source)
            source.currentChildController = dest
        }
    );

此实现仅使目标控制器通过当前控制器,即使推送转换的documentation指出:“图层内容在滑动到位时推送任何现有内容。”公共转换子类型“用于这种转变。“

0 个答案:

没有答案