具有缩放效果和三个项目可见的集合视图流布局
Collection View flow layout with zoom effect and three items visible
这个问题可能被标记为问得不好,但你最好。
我正在尝试找到一种解决方案,以解决如何在 Xamarin.iOS 中创建一个集合视图,其中三个项目可见,一个居中,两个在两侧部分左右可见。像这样 https://github.com/lukagabric/LGLinearFlow。我发现了许多 swift 和 objective c 实现,但没有找到 Xamarin.iOS.
我发现最接近的是在子类化 UICollectionViewFlowLayout 部分下的文档中使用自定义 UICollectionViewFlowLayout https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/uicollectionview,但未定义如何使用它。
你知道一些实现或如何在 Xamarin.iOS 原生中实现它吗?
正如您post,本文档https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/uicollectionview 已经告诉我们如何实现流布局。我们只需要用这个流布局初始化一个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");
那么它的dataSource可以这样:
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只有一行。
我做了一个样例here给大家参考
这个问题可能被标记为问得不好,但你最好。
我正在尝试找到一种解决方案,以解决如何在 Xamarin.iOS 中创建一个集合视图,其中三个项目可见,一个居中,两个在两侧部分左右可见。像这样 https://github.com/lukagabric/LGLinearFlow。我发现了许多 swift 和 objective c 实现,但没有找到 Xamarin.iOS.
我发现最接近的是在子类化 UICollectionViewFlowLayout 部分下的文档中使用自定义 UICollectionViewFlowLayout https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/uicollectionview,但未定义如何使用它。
你知道一些实现或如何在 Xamarin.iOS 原生中实现它吗?
正如您post,本文档https://docs.microsoft.com/en-us/xamarin/ios/user-interface/controls/uicollectionview 已经告诉我们如何实现流布局。我们只需要用这个流布局初始化一个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");
那么它的dataSource可以这样:
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只有一行。
我做了一个样例here给大家参考