
self.tabbarController?.tabbar.hIDden = true只是隐藏我的tabbar,但它不像导航控制器那样动画.
解决方法 这是我实际在生产应用程序中使用的代码.它在Swift中,它也更新了UITabbar.hIDden var.
func scrollVIEwWillBeginDragging(scrollVIEw: UIScrollVIEw) { if scrollVIEw.panGestureRecognizer.translation(in: scrollVIEw).y < 0{ changeTabbar(hIDden: true,animated: true) } else{ changeTabbar(hIDden: false,animated: true) }} 您还可以使用其他回调方法:
func scrollVIEwDIDScroll(scrollVIEw: UIScrollVIEw) { ...} 但是如果你选择这样,那么你必须处理多个实际隐藏tabbar的辅助方法的调用.
然后你需要添加这个方法来动画tabbar的隐藏/显示.
func changeTabbar(hIDden:Bool,animated: Bool){ var tabbar = self.tabbarController?.tabbar if tabbar!.hIDden == hIDden{ return } let frame = tabbar?.frame let offset = (hIDden ? (frame?.size.height)! : -(frame?.size.height)!) let duration:NSTimeInterval = (animated ? 0.5 : 0.0) tabbar?.hIDden = false if frame != nil { UIVIEw.animateWithDuration(duration,animations: {tabbar!.frame = CGRectOffset(frame!,offset)},completion: { println(func changeTabbar(hIDden:Bool,animated: Bool){ guard let tabbar = self.tabbarController?.tabbar else { return; } 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 UIVIEw.animate(withDuration: duration,animations: { tabbar.frame = frame.offsetBy(dx: 0,dy: offset) },completion: { (true) in tabbar.isHIDden = hIDden })}) if {tabbar?.hIDden = hIDden} }) }} 更新Swift 4
总结以上是内存溢出为你收集整理的iOS / Swift – 向下/向上滚动时隐藏/显示UITabBarController全部内容,希望文章能够帮你解决iOS / Swift – 向下/向上滚动时隐藏/显示UITabBarController所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)