【发布时间】:2017-01-04 03:51:30
【问题描述】:
我在 Xamarin Forms 和 iOS 中使用 ScrollView,当您点击顶部或底部时,滚动视图会弹跳(通常太远)。我的理解是这是默认的 iOS 行为吗?有没有办法可以禁用它,所以滚动时不会反弹?
【问题讨论】:
标签: xamarin.forms
我在 Xamarin Forms 和 iOS 中使用 ScrollView,当您点击顶部或底部时,滚动视图会弹跳(通常太远)。我的理解是这是默认的 iOS 行为吗?有没有办法可以禁用它,所以滚动时不会反弹?
【问题讨论】:
标签: xamarin.forms
是的,可以禁用弹跳效果。但是您需要创建一个Custom Renderer。
在您的特定情况下,您必须使用 ScrollViewRenderer 作为自定义渲染器的基类。然后,在您的自定义渲染器中,您可以简单地将Bounces 设置为false。
可以在here 找到自定义渲染器的示例。您的结果应如下所示:
PCL:
public class CustomScrollView : ScrollView
{
public CustomScrollView() {}
}
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;
}
}
}
在 Android 上,您还需要实现一个自定义渲染器,它什么都不做。
【讨论】: