繁体   English   中英

点击手势以隐藏导航栏,选项卡栏和状态栏

[英]Tap Gesture to Hide Navigation Bar, Tab Bar, and Status Bar

我正在尝试在我的网页视图上实现点按手势以隐藏/显示导航栏,标签栏和状态栏。 我隐藏/显示导航栏工作正常,我可以隐藏状态栏但不能让它显示备份。 标签栏项目被隐藏但条形图仍然存在。 有人能帮忙吗?

- (void)toggleBars:(UITapGestureRecognizer *)gesture
{   
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
    BOOL statusBarHidden = YES;

    BOOL barsHidden = self.navigationController.navigationBar.hidden;
    [self.navigationController setNavigationBarHidden:!barsHidden animated:YES];

    BOOL tabBarHidden = self.tabBarController.tabBar.hidden;
    [self.tabBarController.tabBar setHidden:!tabBarHidden];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    UIBarButtonItem *systemAction = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(showMenu)];
    self.navigationItem.rightBarButtonItem = systemAction;

    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(toggleBars:)];
    [webView addGestureRecognizer:singleTap];
    singleTap.delegate = self;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

编辑:看起来标签栏正在隐藏,但我的webview只是没有填充空白区域。 隐藏标签栏时如何填充空间?

首先,您的状态栏永远不会取消隐藏,因为您从未告诉它。 编写代码时,只需告诉状态栏每次执行时都要隐藏。

[[UIApplication sharedApplication] setStatusBarHidden:![[UIApplication sharedApplication] isStatusBarHidden] withAnimation:UIStatusBarAnimationSlide];

[self.navigationController setNavigationBarHidden:!self.navigationController.navigationBar.hidden animated:YES];

此外,我不确定您的标签栏没有正确隐藏的详细信息,但我确实找到了以下类别,声称能够隐藏带有选项动画的标签栏。

https://github.com/idevsoftware/Cocoa-Touch-Additions/tree/master/UITabBarController_setHidden

通过将此添加到我的toggleBars方法,我得到状态栏以隐藏/显示,但我仍然没有弄清楚为什么标签栏项隐藏但不是标签栏本身。

if (([UIApplication sharedApplication].statusBarHidden = YES))
    {
        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
    }
    else
    {
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM