我们已经设置了我们的collectionviewSource和集合视图,但在滚动时遇到了性能问题。我们目前管理这样的单元格:
public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
{
var to = base.GetCell(collectionView, indexPath) as AnimalCell;
to.SetParentLocation(_parent);
return to;
}
我的问题是这管理基类中的队列吗?
如果不是,使用标准出队的最佳方式是什么
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类或如何设置集合视图?
答案 0 :(得分:1)
我的问题是这管理基类中的队列吗?
是的,默认的MvxCollectionViewSource使用此方法:
protected virtual UICollectionViewCell GetOrCreateCellFor(UICollectionView collectionView, NSIndexPath indexPath,
object item)
{
return (UICollectionViewCell) collectionView.DequeueReusableCell(DefaultCellIdentifier, indexPath);
}
所以无论是什么导致性能问题,它可能不是细胞重用(对不起,这可能没有多大帮助 - 但至少它排除了一个!)