2013-09-20 2 views
0

Мы настроили наш коллекционный просмотр и коллекцию, но при прокрутке возникают проблемы с производительностью. В настоящее время мы управляем ячейкой следующим образом:MvxCollectionViewSource DequeueReusableCell

public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath) 
    { 
     var to = base.GetCell(collectionView, indexPath) as AnimalCell; 
     to.SetParentLocation(_parent); 
     return to; 
    } 

Мой вопрос заключается в том, что это управляет dequeuing в базовом классе?

Если не то, что это лучший способ, чтобы переместить это с помощью стандартного DEQUEUE

public override UICollectionViewCell GetCell (UICollectionView collectionView, MonoTouch.Foundation.NSIndexPath indexPath) 
    { 
     var animalCell = (AnimalCell)collectionView.DequeueReusableCell (animalCellId, indexPath); 

     var animal = animals [indexPath.Row]; 
     animalCell.Image = animal.Image; 
     return animalCell; 
    } 

также изменить приведенный выше код вызывает его к краху, когда я пытаюсь использовать клетки. Нужно ли мне изменить класс Cell или как настроено создание коллекции?

ответ

1

Мой вопрос заключается в том, что это управляет dequeuing в базовом классе?

Да, по умолчанию MvxCollectionViewSource использует этот метод:

protected virtual UICollectionViewCell GetOrCreateCellFor(UICollectionView collectionView, NSIndexPath indexPath, 
                   object item) 
    { 
     return (UICollectionViewCell) collectionView.DequeueReusableCell(DefaultCellIdentifier, indexPath); 
    } 

от https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxBaseCollectionViewSource.cs#L55

Так все, что вызывает вопрос об исполнении бюджета, это, вероятно, не повторное использование клеток (извините, что не может помочь много - но, по крайней мере, это один из правил!)

+0

Спасибо, Стюарт, это происходит с CollectionView, над которым мы работали, когда вы где. Я оптимизировал тени и метки фона, и привязка задерживается. Нельзя ли переустанавливать объекты каждый раз, когда ячейки загружаются? Как комментирует это, похоже, прекращается расстройство. – Kodejack

+0

Не могу ответить. Это может быть что угодно. Он не привык к тому, чтобы судить? Это одно обязательство? Или все? СООТВЕТСТВУЮЩИЕ комментарии слишком сложно для анализа отладки .... – Stuart

+0

Хорошо, спасибо Стюарту. – Kodejack

Смежные вопросы