【发布时间】:2018-01-10 19:09:47
【问题描述】:
屏幕截图显示了UICollectionView 的一部分。集合视图的宽度为294.0,其最小项间距为0。每行单元格的宽度为117.0, 58.0, 58.0, 和58.0。这些宽度是由UICollectionViewDelegateFlowLayout 动态计算的,我相信这是必要的,因为并非所有单元格都具有相同的宽度。垂直的黑线是集合视图的背景。由于某种原因,最后一行中的单元格与其他行中的单元格不对齐。什么可能导致此问题,我该如何解决?
编辑:代码在这里:https://gist.github.com/csimmons0/ef7933730905d57fb347d803df2d77dd
【问题讨论】:
-
我找到了一种解决方法:添加一个高度等于一个像素且宽度等于集合视图宽度的虚拟单元格。一旦我这样做,真正的细胞就会对齐。不过,更清洁的解决方案会很好。
-
你想要单元格之间的空间吗?如果是,为什么
minimumInteritemSpacing不等于 1? -
@beyowulf 将 minimumInteritemSpacing 设置为非零值并不能解决问题。集合视图仍然在最后一行的最后一排将任何剩余空间聚集在一起,与其他行相反,它似乎分散了剩余空间。
-
发布您的代码。如有必要,所有这些。没有人可以帮助您提供的内容。我的观点更重要的是,如果您想要单元格之间有一个点空间,为什么要设置
minimumInteritemSpacing == 0,因为您至少希望项目之间有 1 个点。 -
@beyowulf 我用代码添加了一个指向要点的链接。理想情况下,项目间不会有任何间距,但我找不到一种方法来实现这一点。当我试图使单元格的总宽度等于集合视图的宽度时,某些手机上的布局与预期的一样,但在其他手机上,四个单元格不能排成一行。我认为这是由于浮点不精确问题造成的,这就是为什么我开始将单元格的宽度舍入为零的原因。只要四个单元格排成一行并且列对齐,我不在乎它们之间有多少空间。
标签: ios uicollectionview