Estoy creando un diseño personalizado collectionView, algo así como en la documentación aquí. Tengo algunas vistas de texto fuera de la colección Vista que me gustaría llenar dependiendo del elemento actual en el medio de la pantalla, sé que puedo obtener los elementos visibles actuales usando {{X0 }}. Mi pregunta es ¿cómo puedo llegar al evento scrollingEnded
o algo similar para poder llamar a CollectionView.IndexPathsForVisibleItems
allí y obtener los datos que necesito para completar los campos de texto?
Intenté anular ScrollAnimationEnded
en MyCustomCollectionViewSource
pero por alguna razón nunca se activa. También pensé en usar potencialmente un SupplementaryView
pero no pude encontrar ningún código de muestra que se usara con diseños personalizados.
2 respuestas
Usé DecelerationEnded
y eso resolvió mi problema.
Mi pregunta es ¿cómo puedo llegar al evento scrollingEnded o algo similar para poder llamar a CollectionView.IndexPathsForVisibleItems allí y obtener los datos que necesito para completar los campos de texto?
Hay un método Scrolled
que se utiliza para lograr eso (de acuerdo con ContentOffset
para verificar si es necesario cargar más), este método se necesita dentro de UICollectionViewDelegate
.
public class MyCollectionDelegate : UICollectionViewDelegate {
#region Computed Properties
public CollectionView mCollectionView { get; set;}
#endregion
#region Constructors
public MyCollectionDelegate (CollectionView collectionView)
{
// Initialize
mCollectionView = collectionView;
}
#endregion
public override void Scrolled(UIScrollView scrollView)
{
//base.Scrolled(scrollView);
if (scrollView.ContentOffset.Y + scrollView.Frame.Size.Height - scrollView.ContentSize.Height > 30)
{
// load more data
}
}
Luego configure Delegate
para CollectionView de la siguiente manera:
this.collectionView.Delegate = new MyCollectionDelegate(this.collectionView);
Nuevas preguntas
xamarin
Xamarin es una plataforma que consta de Xamarin.iOS, Xamarin.Android, Xamarin.Mac y Xamarin Test Cloud. Le permite escribir aplicaciones nativas multiplataforma para iOS, Android y Mac y seguir su aplicación durante todo su ciclo de vida. La introducción de Xamarin.Forms admite el desarrollo nativo de IU para iOS, Android y Windows