如何在Xamarin Forms for iOS中禁用ScrollView上的弹跳?

Kyl*_*yle 0 xamarin.forms

我在Xamarin Forms和iOS上使用ScrollView,滚动视图在顶部或底部反弹(通常太远).我的理解是这是默认的iOS行为吗?有没有办法我可以禁用它,所以滚动没有反弹?

Dem*_*ian 9

是的,可以禁用弹跳效果.但是您需要创建自定义渲染器.

在您的特定情况下,您必须使用ScrollViewRenderer自定义渲染器的基类.然后,在您的自定义渲染器中,您只需设置Bouncesfalse.

可以在此处找到自定义渲染器的示例.你的结果应该是这样的:

PCL:

public class CustomScrollView : ScrollView
{
    public CustomScrollView() {}
}
Run Code Online (Sandbox Code Playgroud)

iOS版:

[assembly: ExportRenderer(typeof(CustomScrollView), typeof(CustomScrollViewRenderer))]
namespace Test.iOS
{
    public class CustomScrollViewRenderer : ScrollViewRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            Bounces = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在Android上,您还需要实现自定义渲染器,它什么都不做.