IOS标签栏滑动

时间:2018-05-18 15:12:58

标签: ios swift uitabbarcontroller

我试图通过滑动来制作标签栏(或者可能是滑动是正确的词?)更改ViewControllers的效果。

我在整个屏幕上创建了两个带有TableView的ViewControllers,但有一些限制 - 表格的上边缘不会与顶部布局指南重叠。

我将这个ViewControllers与TabBarController链接,当我使用默认动画时 - 它没问题,工作正常。但我想要滑动动画并执行类似(swift3)的操作:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    animateSliding(fromController: selectedViewController, toController: viewController)
    return true
}

func animateSliding(fromController: UIViewController?, toController: UIViewController?) {
    let fromView: UIView = fromController!.view;
    let toView: UIView = toController!.view;

    fromView.superview?.addSubview(toView);
    toView.frame.origin.x = UIScreen.main.bounds.size.width;

    UIView.animate(withDuration: 0.3,
                   animations: {
                    toView.frame.origin.x = 0;
                    fromView.frame.origin.x -= UIScreen.main.bounds.size.width;
                   },
                   completion: nil);
}

(它不是完整的动画,只是样本)

现在我有想要的动画但第二个ViewController的表格在出现时重叠了顶部指南(当滑过第一个viewController时)。如果我在TabBar中更改位置ViewControllers(首先成为第二个和第二个成为第一个)情况变化 - 不是第一个控制器的表重叠顶部指南(当出现时)

1 个答案:

答案 0 :(得分:0)

你试过XLPagerTabStrip吗?我相信它与您想要实现的目标非常相似。

如果没有,您可以将代码建立在该实现中。