我有一个带有3个ViewController的“经典应用程序”和一个用于更改ViewController的tabBar。
在我的第一个ViewController上,我有一个按钮,在所有屏幕上显示UIView,所以我用这个setTabBarVisible func隐藏了tabBar:
extension UIViewController
{
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 (isTabBarVisible == 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
}
}
}
var isTabBarVisible: Bool
{
return (self.tabBarController?.tabBar.frame.origin.y ?? 0) < self.view.frame.maxY
}
}
这是有效的,tabBar是隐藏的,我看到了我所有的UIVIew。 问题是,我在UIView底部有一个UILabel(在我经常显示tabBar的地方),我不能在我的UILabel上使用我的TapGesture,没有任何事情发生。 (如果我在其他地方显示标签,UITapGesture效果很好。)
我试图将我的tabBar的zPosition设置为0,将我的UIView的zPosition设置为1,但这也不起作用。
如何在我的视图底部点击我的标签?
答案 0 :(得分:0)
答案 1 :(得分:0)
检查UILabel.isUserInterration =启用
确保隐藏tabbar时,在底栏属性下取消选择。 See atteh imnage.
您可以使用编程方式尝试
ViewController.edgesForExtendedLayout = UIRectEdge.top