У меня есть UIViewController
, в котором UICollectionView
добавлено как подвид в viewDidLoad. Я использую UICollectionViewFlowLayout
и создал пользовательский MvxCollectionViewSource
для управления ячейками.
Я предоставляю информацию о ячейке в конструкторе объекта макета, что не делает его гибким для изменения устройства и ориентации.
UICollectionViewLayout layout = new UICollectionViewFlowLayout () {ItemSize = new SizeF (354, 150),
ScrollDirection = UICollectionViewScrollDirection.Vertical
};
Выделение моего UICollectionView в методе ViewDidLoad.
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);
}
}