【问题标题】:Detect when I scroll my UIWebView at top of the page检测我何时在页面顶部滚动 UIWebView
【发布时间】:2011-01-10 22:05:10
【问题描述】:

我想在我的 webview 顶部添加一个 URL/google 栏,并像 Safari 一样通过向上滚动我的网页来访问它。 为此,我会检测用户何时滚动页面,以及何时滚动到达顶部。

但我真的不知道怎么做。

一个想法?非常感谢。

马丁

【问题讨论】:

  • 什么是scrool?听起来很危险。 :)
  • 我也一直在到处寻找这个,但还没有找到一个像样的答案。你找到关于这个 Martin 的任何信息了吗?

标签: iphone uiwebview scroll


【解决方案1】:

我也在寻找相同的方法并找到了解决方案。我编写了以下方法来检测滚动坐标。见下文:

-(void)userDidScrollWebView:(id)scrollPoint{
    // NSLog(@"scrolled:::");

    NSString *x1 = [webView stringByEvaluatingJavaScriptFromString: @"scrollX"];


    NSString *y1 = [webView stringByEvaluatingJavaScriptFromString: @"scrollY"];


    NSLog(@"scroll x=%@ y=%@", x1,y1);      

    if ([y1 isEqualToString: @"0"]) {
        NSLog(@"RELAOD ME");
    }   
}

希望对您有所帮助。

【讨论】:

  • 一年后,我又成功登录了!这很有趣,因为我使用了与您预先确定的相同的解决方案:)
【解决方案2】:

是的,你想为你的 UIWebView 实现 UIScrollViewDelegate。

【讨论】:

  • 但是 UIWebView 没有实现 UIScrollViewDelegate !已经有一些争议,他们说只有 javascript 才有可能......(stackoverflow.com/questions/1604795/scrolloffset-in-uiwebview
  • 只是一个轻微的术语 nitpick:UIWebView implements UIScrollViewDelegate(毕竟它声明符合该协议)。您的意思是它没有 UIScrollViewDelegate(以及您可以提供的适当的 setDelegate/delegate 方法——这是有道理的,因为它不是 UIScrollView)。
  • 使用 [someWebView conformsToProtocol:@protocol(UIScrollViewDelegate)] 快速检查表明,对于所有意图和目的,UIWebView 都是 UIScrollView。您必须编写方法来覆盖默认行为。
  • 也许大卫的意思是你可以继承 UIWebView 并覆盖 UIScrollViewDelegate 方法。这是一个好方法。许多开发人员习惯于委派,以至于忘记了子类化。
【解决方案3】:

您可以使用以下方法来解决您的问题。

获取pageOffset:

int pageYOffset = [[webViewObj stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue];

获取网页的总滚动高度:

int scrollHeight = [[webViewObj stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] intValue];

用于将网页滚动到特定偏移量:

[webViewObj stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.body.scrollTop = %d",scrollHeight ]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-30
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    相关资源
    最近更新 更多