gpt4 book ai didi

c# - 如何删除 CollectionView IOS 中行之间的额外行间距?

转载 作者:行者123 更新时间:2023-11-29 00:01:21 27 4
gpt4 key购买 nike

enter image description here

我想通过移除单元格顶部多余的空白来向上移动单元格,因为单元格具有不同的高度。我正在使用流布局,并且我实现了流布局的委托(delegate)方法以及行和项目间距。

这是我的代码

public partial class TestVc : UIViewController
{
public override void ViewDidLoad()
{
base.ViewDidLoad();

string[] words = { "one", "two", "three", "four", "five",
"six seven eight", "nine ten eleven twelve thirteen",
"the quick brown fox"};

grid.DataSource = new MyDS(words);
grid.Delegate = new FlowLayoutDelegate(words);
var layout = new UICollectionViewFlowLayout();
}
}

public class MyDS : UICollectionViewDataSource
{
string[] words;

public MyDS(string[] _words)
{
words = _words;
}

public override UICollectionViewCell GetCell(UICollectionView collectionView,
NSIndexPath indexPath)
{
UICollectionViewCell cell = collectionView
.DequeueReusableCell("MyCellTest", indexPath) as UICollectionViewCell;
MyCellTest demoCell = cell as MyCellTest;

return cell;
}

public override nint GetItemsCount(UICollectionView collectionView,
nint section)
{
return words.Length;
}

public override nint NumberOfSections(UICollectionView collectionView)
{
return 1;
}
}

class FlowLayoutDelegate : UICollectionViewDelegateFlowLayout
{
string[] items;

public FlowLayoutDelegate(string[] items)
{
this.items = items;
}

public override nfloat GetMinimumInteritemSpacingForSection(
UICollectionView collectionView, UICollectionViewLayout layout, nint section)
{
return 5;
}

public override nfloat GetMinimumLineSpacingForSection(
UICollectionView collectionView, UICollectionViewLayout layout, nint section)
{
return 5;
}

public override CoreGraphics.CGSize GetSizeForItem(UICollectionView collectionView,
UICollectionViewLayout layout, NSIndexPath indexPath)
{
int numOfcoll = 2;
int margans = 40;

if (indexPath.Row == 0)
{
return new CGSize((collectionView.Bounds.Width - margans) / numOfcoll, 200);
}
else
{
return new CGSize((collectionView.Bounds.Width - margans) / numOfcoll, 73);
}
}
}

请告诉我没有任何库的任何解决方案。我已经发布了一个问题,但没有收到 Xamarin 社区的答复,所以我将 IOS 社区作为其 C# 代码添加到其中,但不要担心建议我使用 objective-c 的解决方案,我将通过我的 C# Xamarin 实现它自己的。

最佳答案

您需要计算每个图像的高度并根据图像的大小设置sizeofcell。

您可以查看本教程。

https://www.raywenderlich.com/164608/uicollectionview-custom-layout-tutorial-pinterest-2

关于c# - 如何删除 CollectionView IOS 中行之间的额外行间距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49431969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com