我试图通过滑动来制作标签栏(或者可能是滑动是正确的词?)更改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(首先成为第二个和第二个成为第一个)情况变化 - 不是第一个控制器的表重叠顶部指南(当出现时)