2

我有一个UIViewControllerUICollectionViewviewDidLoad 中添加为子视图。我正在使用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 是我的自定义源,并创建了一个UICollectionViewDelegateFlowLayout如此处提到

UICollectionViewDelegateFlowLayout如下所示,但它永远不会被调用。

class CustomViewDelegate: UICollectionViewDelegateFlowLayout
    {

        public override CoreGraphics.CGSize GetSizeForItem (UICollectionView collectionView, UICollectionViewLayout layout, NSIndexPath indexPath)
        {
            return new CoreGraphics.CGSize (100, 100);
        }
    }
4

0 回答 0