【问题标题】:iPhone - UIWebView: Detect User Scrolling to Bottom of PageiPhone - UIWebView:检测用户滚动到页面底部
【发布时间】:2011-04-30 08:55:45
【问题描述】:

所以,我有一个带有 UIWebView 的 UIView,用于提供本地 HTML 文件(文档预览)。我也有“接受”和“拒绝” UIButtons。我需要这些按钮仅在用户滚动到网页底部后出现。有没有办法捕获滚动到 UIWebView 底部的事件?

我没有看到任何好的答案,有人可以帮忙吗?

提前致谢。

【问题讨论】:

    标签: iphone objective-c uiwebview uiwebviewdelegate


    【解决方案1】:

    嗯?

    为什么不直接在页面底部添加按钮?

    【讨论】:

    • 按钮不在 HTML 中,它们在也有 UIWebView 的 UIView 中。
    • 啊,在那种情况下。您可以在单独的 viewController 中将 HTML 呈现为模态视图,HTML 和底部的按钮。
    【解决方案2】:

    UIWebView 符合 UIScrollViewDelegate。因此,您可以创建 UIWebView 的子类(例如 ScrollDetectWebView)并捕获对 UIScrollViewDelegate 的调用。

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        [super scrollViewDidScroll: scrollView];
    
        // Whatever scroll detection you need to do
    }
    

    【讨论】:

      【解决方案3】:

      JavaScript 让我们处理滚动事件并将消息发送到 Objective-c。

      【讨论】:

        【解决方案4】:
        - (void)viewDidLoad {
            [super viewDidLoad];
        
             self.webView.scrollView.delegate = self;
        }
        
        - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
        
            CGSize fittingSize = [self.webView sizeThatFits:CGSizeZero];
        
            CGFloat height1 = scrollView.bounds.origin.y + self.webView.bounds.size.height;
        
            CGFloat height2 = fittingSize.height;
        
            int delta = fabs(height1 - height2);
        
            if (delta < 30) {
        
               NSLog(@"HELLO!!! You reached the page end!");
            }
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-30
          • 2021-08-21
          • 2011-01-10
          • 2012-09-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多