我正在尝试通过更改ViewControllers的滑动(或可能是正确的字眼?)效果来制作选项卡栏。

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

我将这个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位置(第一个变成第二个,第二个变成第一个),则情况发生了变化-不是第一个控制器的表与顶部指南重叠(出现时)

最佳答案

您是否尝试过XLPagerTabStrip?我相信这与您要达到的目标非常相似。

如果没有,您可以将代码基于该实现。

关于ios - IOS标签栏滑动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50414391/

10-12 00:15
查看更多