集合视图流布局,具有缩放效果和三个可见项目



这个问题可能被标记为问得不好,但更好。

我正在尝试找到有关如何在 Xamarin.iOS 中创建集合视图的解决方案,其中三个项目可见,一个居中,两个在两侧部分可见左右。像这样的东西 https://github.com/lukagabric/LGLinearFlow。我发现许多快速而客观的c实现,但Xamarin.iOS没有任何实现。

我发现的最接近的是使用自定义UICollectionViewFlowLayout在Subclassing UICollectionViewFlowLayout部分下的文档中 https://learn.microsoft.com/en-us/xamarin/ios/user-interface/controls/uicollectionview 但没有定义如何使用它。

您是否知道一些实现或如何在 Xamarin.iOS Native 中实现它?

正如你所发帖的,这个文档 https://learn.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 只有一行。

我在这里做了一个示例供您参考。

相关内容

  • 没有找到相关文章

最新更新