Swift UITabBarController隐藏动画
问题描述:
我想隐藏时将动画添加到我的tabBarController。我能够通过使用self.navigationController?.isNavigationBarHidden = true
来完成navigationBarController
的这种效果。我可以通过使用self.tabBarController?.tabBar.isHidden = true
来隐藏tabBar,但我没有看到动画,我怎么能这样做,谢谢你提前。Swift UITabBarController隐藏动画
答
你可以改变标签栏的动画内部框架,所以像:
func hideTabBar() {
var frame = self.tabBarController?.tabBar.frame
frame?.origin.y = self.view.frame.size.height + (frame?.size.height)!
UIView.animate(withDuration: 0.5, animations: {
self.tabBarController?.tabBar.frame = frame!
})
}
func showTabBar() {
var frame = self.tabBarController?.tabBar.frame
frame?.origin.y = self.view.frame.size.height - (frame?.size.height)!
UIView.animate(withDuration: 0.5, animations: {
self.tabBarController?.tabBar.frame = frame!
})
}
这台标签栏下方可见屏幕,使其从底部向上/向下滑动。
答
您必须添加UIView
transitionWithView
类FUNC
func hideTabBarWithAnimation() ->() {
UIView.transitionWithView(tableView,
duration: 1.0,
options: .TransitionCrossDissolve,
animations:
{() -> Void in
self.tabBarController?.tabBar.isHidden = true
},
completion: nil);
}
答
在情况下,如果你需要从隐藏其切换为可见,反之亦然:
func toggleTabbar() {
guard var frame = tabBarController?.tabBar.frame else { return }
let hidden = frame.origin.y == view.frame.size.height
frame.origin.y = hidden ? view.frame.size.height - frame.size.height : view.frame.size.height
UIView.animate(withDuration: 0.3) {
self.tabBarController?.tabBar.frame = frame
}
}
这不是斯威夫特3标准。 “隐藏”不存在了。 –
固定为swift 3 –