经过大量的探索并尝试了各种方法来使用Swift优雅地隐藏/显示UITabBar,我得以danh采纳了这个出色的解决方案并将其转换为Swift:
func setTabBarVisible(visible: Bool, animated: Bool) { //* This cannot be called before viewDidLayoutSubviews(), because the frame is not set before this time // bail if the current state matches the desired state if (tabBarIsVisible() == visible) { return } // get a frame calculation ready let frame = self.tabBarController?.tabBar.frame let height = frame?.size.height let offsetY = (visible ? -height! : height) // zero duration means no animation let duration: TimeInterval = (animated ? 0.3 : 0.0) // animate the tabBar if frame != nil { UIView.animate(withDuration: duration) { self.tabBarController?.tabBar.frame = frame!.offsetBy(dx: 0, dy: offsetY!) return } }}func tabBarIsVisible() -> Bool { return (self.tabBarController?.tabBar.frame.origin.y)! < self.view.frame.maxY}// Call the function from tap gesture recognizer added to your view (or button)@IBAction func tapped(_ sender: Any?) { setTabBarVisible(visible: !tabBarIsVisible(), animated: true)}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)