Как отключить эффект отскока в Xamarin.Forms CollectionView на ios - PullRequest
1 голос
/ 10 июля 2020

Я пытаюсь отключить эффект подпрыгивания CollectionView на iOS в моем проекте Xamarin.Forms с помощью настраиваемого средства визуализации. Я смог добиться этого в ListView, используя следующее:

if (e.NewElement != null)
{
   var listView = Control as UITableView;
   Control.Bounces = false;
}

Но свойство Bounces недоступно в элементе управления CollectionView. Есть ли другой способ сделать это?

1 Ответ

3 голосов
/ 10 июля 2020

Создайте собственный рендерер, как показано ниже. CollectionView оборачивает нативный UICollectionView, который по-прежнему является UIScrollView и имеет свойство Bounces.

Он просто в другом месте!

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;
        }
    }
}

Это должно работать Хитрость. Полный пример здесь: https://github.com/jfversluis/CollectionViewBounceSample

...