Xamarin ios 自定义 WkWebViewRenderer 滚动事件
Xamarin ios custom WkWebViewRenderer Scrolled event
我正在将我的 Xamarin Forms 应用程序中的 WebViewRenderer 更改为 WkWebViewRenderer。我之前有 Scrolled 方法,我重写它以检测滚动到结束。但是 WkWebViewRenderer 中没有这样的方法。还可以如何实施?
public override void Scrolled(UIKit.UIScrollView scrollView)
{
base.Scrolled(scrollView);
float y1 = (float)scrollView.ContentOffset.Y;
if ((this.Element as CustomWebview).ScrolledToEnd == false)
{
if ((scrollView.ContentSize.Height - 20) < (y1 + this.Element.Height))
{
(this.Element as CustomWebview).ScrolledToEnd = true;
if ((this.Element as CustomWebview).ScrollToEndDelegate != null)
{
(this.Element as CustomWebview).ScrollToEndDelegate.Invoke(true);
}
}
}
}
好的,所以我想现在我们可以使用 WkWebView 的 ScrollView 属性 中的滚动事件来代替 Scrolled 方法。这对我有用:
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
base.ScrollView.Scrolled += ScrollDetect;
}
private void ScrollDetect(object sender, EventArgs e)
{
throw new NotImplementedException();
}
我正在将我的 Xamarin Forms 应用程序中的 WebViewRenderer 更改为 WkWebViewRenderer。我之前有 Scrolled 方法,我重写它以检测滚动到结束。但是 WkWebViewRenderer 中没有这样的方法。还可以如何实施?
public override void Scrolled(UIKit.UIScrollView scrollView)
{
base.Scrolled(scrollView);
float y1 = (float)scrollView.ContentOffset.Y;
if ((this.Element as CustomWebview).ScrolledToEnd == false)
{
if ((scrollView.ContentSize.Height - 20) < (y1 + this.Element.Height))
{
(this.Element as CustomWebview).ScrolledToEnd = true;
if ((this.Element as CustomWebview).ScrollToEndDelegate != null)
{
(this.Element as CustomWebview).ScrollToEndDelegate.Invoke(true);
}
}
}
}
好的,所以我想现在我们可以使用 WkWebView 的 ScrollView 属性 中的滚动事件来代替 Scrolled 方法。这对我有用:
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
base.ScrollView.Scrolled += ScrollDetect;
}
private void ScrollDetect(object sender, EventArgs e)
{
throw new NotImplementedException();
}