如何在 ios 上的 Xamarin.Forms CollectionView 中关闭弹跳效果

Pra*_*tik 2 c# collectionview ios xamarin xamarin.forms

我正在尝试使用自定义渲染器在 Xamarin.Forms 项目中关闭 iOS 上 CollectionView 的弹跳效果。我可以使用以下方法在 ListView 中实现此目的:

if (e.NewElement != null)
{
   var listView = Control as UITableView;
   Control.Bounces = false;
}
Run Code Online (Sandbox Code Playgroud)

但该Bounces属性在 CollectionView 控件中不可用。还有其他方法可以做到这一点吗?

Ger*_*uis 6

创建一个自定义渲染器,如下所示。包装了仍然是 a并具有属性的CollectionView本机。UICollectionViewUIScrollViewBounces

只是在不同的地方而已!

using System;
using CollectionViewBounceSample.iOS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ExportRenderer(typeof(CollectionView), typeof(NoBounceRenderer))]
namespace CollectionViewBounceSample.iOS
{
    public class NoBounceRenderer : CollectionViewRenderer
    {
        public NoBounceRenderer()
        {
            
        }

        protected override void OnElementChanged(ElementChangedEventArgs<GroupableItemsView> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
                Controller.CollectionView.Bounces = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该够了吧。完整示例在这里: https: //github.com/jfversluis/CollectionViewBounceSample