我正在Xamarin.Form中创建应用程序,而我在Xamarin中是新手。在IOS中,当滚动到顶部时,应用程序会反弹。无论如何,有没有停止滚动弹跳?
我尝试运行CSS文件,但没有运行。
答案 0 :(得分:2)
在iOS上有一个专用的属性。这是AlwaysBounceVertical
。与此相关的还有一些属性。
但是,Forms不直接支持设置这些属性,因此您需要创建一个自定义渲染器或相等的渲染器。看看这个:
using NoBounceiOS.iOS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(ListView), typeof(NoBounceRenderer))]
namespace NoBounceiOS.iOS
{
public class NoBounceRenderer : ListViewRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.AlwaysBounceVertical = false;
}
}
}
}
答案 1 :(得分:0)
原因::在iOS的Xamarin.forms中,UITableView具有某些属性(表单中的列表视图)。
@property(nonatomic) BOOL bounces; // default YES. if YES, bounces past edge of content and back again
@property(nonatomic) BOOL alwaysBounceVertical; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag vertically
@property(nonatomic) BOOL alwaysBounceHorizontal; // default NO. if YES and bounces is YES, even if content is smaller than bounds, allow drag horizontally
因此,仅将AlwaysBounceVertical
设置为false无效。您应将bounces
设置为false。
解决方案: 正如@Gerald Versluis所说,您可以使用CustomRenderer。
public class MyListViewRenderer:ListViewRenderer
{
public MyListViewRenderer()
{
}
protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
base.OnElementChanged(e);
if(Control!=null)
{
Control.Bounces = false;
}
}
}