【问题标题】:Custom Collection View is not showing up自定义集合视图未显示
【发布时间】:2020-01-20 17:15:25
【问题描述】:

我正在开发一个包含一系列图像的应用程序,而collectionview 根本没有显示。我正在关注this 文章,我将其翻译成 C#。

here 是我制作的示例应用程序,用于展示我正在尝试做的事情的最小示例。

当我运行代码时,集合源中的 GetCell 没有触发,我知道这是问题所在,但我不知道为什么它没有触发,我只是不知所措。

【问题讨论】:

  • 检查你的项目时我也迷路了。我认为问题可能是由自定义布局引起的。也许你可以尝试一个默认的 UICollectionViewFlowLayout 看看它是否有效。我稍后会回去检查它,如果我发现任何东西,我会更新你。这里有一些链接可能会有所帮助:cellforitematindexpath-not-calledcellforitematindexpath-is-not-being-called
  • @JackHua-MSFT 我禁用了自定义布局,它仍然没有显示,我将尝试不使用 xib 文件,看看是否能得到更好的结果,我正在看的文章没有'不要使用它们,所以也许我不能。

标签: xamarin.ios uicollectionview uicollectionviewlayout


【解决方案1】:

我今天再次测试,可以确定问题是由MosaicCollectionLayout引起的。

我今天所做的是删除了您的 collectionView 并添加了一个新的 collectionView,然后我添加了具有固定高度和宽度的约束(以确保它即使在没有数据),然后我将布局更改为FlowLayout,它可以工作,这是截图:

之后,我将布局改回MosaicCollectionLayout,在LayoutAttributesForElementsInRect 方法内的_cachedAttributes.Reverse(lastIndex.Row, firstMatchIndex.Value); 行中出现异常。

我查看了这篇文章,但尚未找到解决方案。可能swift翻译成C#的代码有一些错误。所以问题与xib无关,请检查LayoutAttributesForElementsInRect方法中的代码。您也可以尝试将约束添加到您的collectionView。希望这些信息对您有所帮助。

【讨论】:

  • 我也明白了,我认为在 stackview 中设置约束不是一个好习惯,但我猜也有例外。我现在看到了我的图像,我将不得不调整自定义布局,也许我错过了一些东西。无论如何,非常感谢杰克。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多