Xamarin WebView iOS检测滚动事件

时间:2017-10-24 14:52:15

标签: ios xamarin webview xamarin.ios xamarin.forms

设置:我正在使用Xamarin(和Xamarin.Forms)开发带有嵌入式浏览器的应用程序。

我的问题: 我有一个WebView,我试图检测用户何时滚动,以及它是Up还是Down。

到目前为止,我已经为iOS项目创建了一个Custom WebViewRenderer。但是如何订阅滚动事件呢? 谷歌搜索让我相信覆盖WebViewRenderer的

OnElementChanged(VisualElementChangedEventArgs e)

应该是正确的方式,但我似乎无法找到任何关于如何进一步发展的文档/线索。 有谁知道,或者能指出我正确的方向?

1 个答案:

答案 0 :(得分:2)

MKWebViewUIWebView都包含UIScrollView,您可以为其UIScrollViewDelegate媒体资源分配ScrollView.Delegate并跟踪scrollViewDidScroll以确定平移方向:

public class UIScrollViewDelegate : NSObject, IUIScrollViewDelegate
{
    [Export("scrollViewDidScroll:")]
    public void Scrolled(UIScrollView scrollView)
    {
        var translation = scrollView.PanGestureRecognizer.TranslationInView(scrollView.Superview);
        Console.WriteLine($"Scrolling {(translation.Y > 0 ? "Down" : "Up")}");
    }
}