我有一个UITabBarController,我添加了一个视图控制器。在我的UIViewController中,我有一个UITableView。
我的要求是每当我向下滚动tableView然后Tab键应该被隐藏,TableView应该全屏显示,当我向上滚动tableView时,TabBar不应该被隐藏。
这是我的故事板屏幕截图:
在图像中,您可以看到我已经使用了tableView和tabBar。而且当TabBar被隐藏时,我必须显示TableView高度。
这是我的代码:
//Change Tab bar
func changeTabBar(hidden:Bool, animated: Bool){
let tabBar = self.tabBarController?.tabBar
if tabBar!.isHidden == hidden{ return }
let frame = tabBar?.frame
let offset = (hidden ? (frame?.size.height)! : -(frame?.size.height)!)
let duration:TimeInterval = (animated ? 0.5 : 0.0)
tabBar?.isHidden = false
if frame != nil
{
UIView.animate(withDuration: duration,
animations: {
tabBar!.frame = frame!.offsetBy(dx: 0, dy: offset)
//tabBar?.isHidden = true
//self.tableView.frame.size.height = self.tableView.frame.size.height + (tabBar?.frame.size.height)!
},
completion: {
if $0 {tabBar?.isHidden = hidden}
})
}
}
//ScrollView Delegate
extension reNewView : UIScrollViewDelegate {
//Tab bar
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0{
changeTabBar(hidden: true, animated: true)
}
else{
changeTabBar(hidden: false, animated: true)
}
}
}
怎么办?
我也检查了this link,但仍未得到正确答案。