设置:我正在使用Xamarin(和Xamarin.Forms)开发带有嵌入式浏览器的应用程序。
我的问题: 我有一个WebView,我试图检测用户何时滚动,以及它是Up还是Down。
到目前为止,我已经为iOS项目创建了一个Custom WebViewRenderer。但是如何订阅滚动事件呢? 谷歌搜索让我相信覆盖WebViewRenderer的
OnElementChanged(VisualElementChangedEventArgs e)
应该是正确的方式,但我似乎无法找到任何关于如何进一步发展的文档/线索。 有谁知道,或者能指出我正确的方向?
答案 0 :(得分:2)
MKWebView
和UIWebView
都包含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")}");
}
}