首页 > 解决方案 > 如何在 Xamarin iOS 13.2 应用程序中禁用弹性反弹?

问题描述

我有一个在滚动时反弹的 webview。以前我通过实现自定义渲染器禁用了它。

    protected override void OnElementChanged(ElementChangedEventArgs<FormsWebView> e)
    {
        base.OnElementChanged(e);
        if(Control != null)
        {
            Control.ScrollView.Bounces = false;

        }
    } 

但更新到 13.2 后,上述修复不起作用。

谁能建议解决此问题的最佳方法?

标签: c#iosxamarinxamarin.formscross-platform

解决方案


如果您还使用UIWebView来实现它,您可以更改为使用WKWebView。因为 AppleUIWebView从 iOS 13 弃用了。

https://developer.apple.com/documentation/uikit/uiwebview

[assembly: ExportRenderer(typeof(HybridWebView), typeof(HybridWebViewRenderer))]
namespace CustomRenderer.iOS
{
    public class HybridWebViewRenderer : WkWebViewRenderer
    {

        public HybridWebViewRenderer() : this(new WKWebViewConfiguration())
        {
        }

        public HybridWebViewRenderer(WKWebViewConfiguration config) : base(config)
        {

        }

        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            ScrollView.Bounces = false;
        }

       protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                ((HybridWebView)Element).Cleanup();
            }
            base.Dispose(disposing);
        }
    }
}

它在我的本地站点中的工作方式如下:

在此处输入图像描述


推荐阅读