Ios 状态栏仅在UIWebView向下滚动一点时检测点击

Ios 状态栏仅在UIWebView向下滚动一点时检测点击,ios,uiwebview,uiscrollview,uiscrollviewdelegate,uistatusbar,Ios,Uiwebview,Uiscrollview,Uiscrollviewdelegate,Uistatusbar,我有一个UIWebView作为UINavigationController的根视图。当一个网页加载完毕时,我会隐藏导航栏,并寻找一种方式将其显示出来。现在,当用户点击状态栏时,我正试图这样做(在我看来,这比我想要的更复杂) 为了实现这一点,首先我获得了webView的滚动视图: for (id subview in mainWebView.subviews) { if ([[subview class] isSubclassOfClass: [UIScrollView class]])

我有一个
UIWebView
作为
UINavigationController
的根视图。当一个网页加载完毕时,我会隐藏导航栏,并寻找一种方式将其显示出来。现在,当用户点击状态栏时,我正试图这样做(在我看来,这比我想要的更复杂)

为了实现这一点,首先我获得了webView的滚动视图:

for (id subview in mainWebView.subviews) {
    if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
        ((UIScrollView *)subview).delegate = self;
    }
}
然后我使用委托方法:

-(BOOL) scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    return NO;
}
我希望这能奏效,但发生的情况如下:

  • 页面加载,导航栏隐藏(这很好)
  • 我试图点击状态栏,但什么也没发生(这很糟糕)
  • 我向下滚动,使webview远离状态栏
  • 在不放开webview的情况下,我用另一根手指轻触状态栏,它就工作了!(真奇怪:)

Soooo,有什么帮助吗?为什么会这样?我也有同样的问题。我通过以下方式解决了这个问题:

[[[webView subviews] objectAtIndex:0] setScrollsToTop:NO];
您还可以通过以下方式访问iOS 5中的scrollView属性:

webView.scrollView.scrollsToTop = NO ;

我也有同样的问题。我通过以下方式解决了这个问题:

[[[webView subviews] objectAtIndex:0] setScrollsToTop:NO];
您还可以通过以下方式访问iOS 5中的scrollView属性:

webView.scrollView.scrollsToTop = NO ;

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

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

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

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

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

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

你找到解决方案了吗?@fabian789我终于用第一个链接找到了解决方案了吗?@fabian789我终于用第一个链接找到了解决方案,但是你怎么能将
ScrollStop
设置为
NO
,并且仍然得到
-ScrollViewshoulldScrollTotop
?它应该是这样工作的吗?但是如何将
scrollsToTop
设置为
NO
,并且仍然可以回调到
-scrollViewShouldScrollToTop
?这就是它的工作原理吗?