По мере публикации в этой документации https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/uicollectionview рассказывается, как реализовать flowLayout.Нам просто нужно инициализировать UICollectionView
с этим макетом потока.
Построить новое представление коллекции :
LineLayout lineLayout = new LineLayout();
UICollectionView collectionView = new UICollectionView(View.Bounds, lineLayout);
View.AddSubview(collectionView);
collectionView.DataSource = new MyCollectionViewSource();
collectionView.BackgroundColor = UIColor.White;
collectionView.RegisterNibForCell(UINib.FromName("MyCollectionViewCell", null), "Cell");
Тогда его источник данных может быть похож наэто :
public class MyCollectionViewSource : UICollectionViewDataSource
{
public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
{
MyCollectionViewCell cell = collectionView.DequeueReusableCell("Cell", indexPath) as MyCollectionViewCell;
cell.MyStr = "label" + indexPath.Row;
return cell;
}
public override nint GetItemsCount(UICollectionView collectionView, nint section)
{
return 20;
}
}
Обратите внимание, что константу в LineLayout
можно настроить в соответствии с вашими требованиями.И SectionInset
означает расстояние между каждым разделом, мы должны отрегулировать его, чтобы убедиться, что CollectionView имеет только одну строку.
Я сделал образец здесь для вас.