我有一个UIViewController
在viewDidLoad中添加了UICollectionView
作为子视图。我使用UICollectionViewFlowLayout
并创建了一个自定义MvxCollectionViewSource
来管理单元格。
我在布局对象的构造函数中提供单元格信息,这不会使设备和方向更改变得灵活。
UICollectionViewLayout layout = new UICollectionViewFlowLayout () {ItemSize = new SizeF (354, 150),
ScrollDirection = UICollectionViewScrollDirection.Vertical
};
在ViewDidLoad方法中分配我的UICollectionView。
CollectionView = new UICollectionView (this.View.Bounds, layout);
CollectionView.Delegate = new CustomViewDelegate();
CollectionView.RegisterClassForCell (typeof(ProjectCollectionCell), ProjectCollectionCell.Key);
CollectionView.Source = new ProjectCollectionSource (CollectionView, this,ProjectCollectionCell.Key);
CollectionView.BackgroundColor = UIColor.Clear;
// CollectionView.RegisterClassForSupplementaryView (typeof(Header), UICollectionElementKindSection.Header, headerId);
CollectionView.AllowsMultipleSelection = true;
this.View.AddSubview (CollectionView);
现在,ProjectCollectionSource是我的自定义来源,并按照here创建了UICollectionViewDelegateFlowLayout
。
UICollectionViewDelegateFlowLayout
如下所示,但永远不会被调用。
class CustomViewDelegate: UICollectionViewDelegateFlowLayout
{
public override CoreGraphics.CGSize GetSizeForItem (UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
{
return new CoreGraphics.CGSize (100, 100);
}
}