【发布时间】:2018-05-18 15:12:58
【问题描述】:
我正在尝试通过改变 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 的位置(第一个变成第二个,第二个变成第一个)情况变化 - 不是第一个控制器的表格重叠顶部指南(出现时)
【问题讨论】:
标签: ios swift uitabbarcontroller