gpt4 book ai didi

ios - 只有当 UIWebView 向下滚动一点时,状态栏才会检测到点击

转载 作者:行者123 更新时间:2023-11-29 13:49:03 25 4
gpt4 key购买 nike

我有一个 UIWebView 作为 UINavigationController 的 Root View 。当网页完成加载时,我隐藏了导航栏,我正在寻找一种方法来显示它。现在,我正在尝试在用户点击状态栏时执行此操作(this approach 在我看来比我想要的更复杂)。

为了完成这个,首先我得到 webView 的 scrollView:

for (id subview in mainWebView.subviews) {
if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
((UIScrollView *)subview).delegate = self;
}
}

然后我使用委托(delegate)方法:

-(BOOL) scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
[self.navigationController setNavigationBarHidden:NO animated:YES];
return NO;
}

我希望这会奏效,但结果是这样的:

  • 页面加载,导航栏被隐藏(这很好)
  • 我尝试点击状态栏,但没有任何反应(这很糟糕)
  • 我向下滚动,使 webview 离状态栏“远”
  • 在不放开 webview 的情况下,我用另一根手指点击状态栏,它起作用了! (这很奇怪 :)

太好了,有什么帮助吗?为什么会这样?

最佳答案

我刚刚在 iOS 5.0 中再次尝试,它似乎按预期工作:

[self.webView.scrollView setDelegate:self];
[self.webView.scrollView setScrollsToTop:YES];

然后:

-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}

关于ios - 只有当 UIWebView 向下滚动一点时,状态栏才会检测到点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5881170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com